Query
Monday 27 February 2023
2023-02-27 12:18:31 (3 months ago) by Marcus Comstedt <marcus@mc.pp.se>
- pike/src/pike_types.cmod (+19/-0)(19 lines)
branch: master
Compiler [Typechecker]: Fix leaking marker assignments with T_OR
Sunday 26 February 2023
2023-02-26 01:59:04 (3 months ago) by Marcus Comstedt <marcus@mc.pp.se>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix disappearing attribute on A with A-(B|C)
Sunday 19 February 2023
2023-02-19 14:36:03 (3 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-3)(7 lines)
branch: master
Compiler [Typechecker]: Fix formatting of some type mismatch errors.
yytype_report()'s format string is used both with the Pike-level
sprintf() and with string_builder_vsprintf(). Adjust some formats
accordingly.
Fixes testsuite failure.
Saturday 18 February 2023
2023-02-18 11:39:25 (3 months ago) by Tobias S. Josefowitz <tobij@tobij.de>
- pike/src/pike_types.cmod (+5/-1)(6 lines)
branch: master
Compiler [Typechecker]: Fix missing adjustment to remapper API change
In push_and_fixup_markers().
Thursday 08 December 2022
2022-12-08 11:21:43 (6 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref on __unknown__.
Fixes testsuite failure.
Wednesday 16 November 2022
2022-11-16 11:38:30 (6 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+10/-0)(10 lines)
branch: master
Compiler [Typechecker]: Disabled strict types warning for operator assignment.
Disabled due to there not being any syntax to cast
the originating value type. Consider:
int(2bit) i = 1;
i--; // Warning that int(-1..2) can't be assigned to i.
See also#10033 .
Tuesday 15 November 2022
2022-11-15 13:26:28 (6 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+5/-4)(9 lines)
- pike/src/las.cmod (+9/-13)(22 lines)
- pike/src/treeopt.in (+18/-16)(34 lines)
branch: master
Compiler [Typechecker]: Check that ++ and -- operations are valid.
To simplify implementation, F_INC, F_DEC, F_POST_INC and
F_POST_DEC nodes now have an int node with a 1 in CDR.
Update treeopt.in rules accordingly.
Fixes#10033 .
Wednesday 02 November 2022
2022-11-02 11:10:22 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+18/-3)(21 lines)
branch: master
Compiler [Typechecker]: Evaluate markers in marker value assignments.
Tuesday 01 November 2022
2022-11-01 12:22:26 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-2)(8 lines)
branch: master
Compiler [Typechecker]: Add missing special case.
Monday 31 October 2022
2022-10-31 12:27:56 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+31/-11)(42 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Improved matching of transitive functions.
Sunday 30 October 2022
2022-10-30 10:22:47 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-6)(17 lines)
branch: master
Compiler [Typechecker]: Pass along remap to expand_transitive_remap().
Fixes some marker expansion issues.
Saturday 29 October 2022
2022-10-29 10:00:12 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+34/-31)(65 lines)
branch: master
Compiler [Typechecker]: Fixed marker issues in expand_transitive_remap().
No remapping should be done on cont when propagating it "in front of"
the transitive type.
The return value from cont must have its markers expanded before
using it as argument to trans.
These changes should make the remap argument to expand_transitive_remap()
actually useful (all current users pass a NULL remap).
Friday 28 October 2022
2022-10-28 10:32:10 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+24/-1)(25 lines)
branch: master
Compiler [Typechecker]: Move TRANSITIVE special cases to push_type().
PIKE_T_TRANSITIVE types will now have neither a car nor a cdr of NULL.
Reduces need for special cases in other code.
Thursday 27 October 2022
2022-10-27 10:38:06 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+8/-3)(11 lines)
branch: master
Compiler [Typechecker]: Add exception to inexact mode.
2022-10-27 10:20:39 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+11/-1)(12 lines)
branch: master
Compiler [Typechecker]: Strip scope from lfun types.
Fixes too hard matching against some (eg `[]=()) lfuns.
Wednesday 26 October 2022
2022-10-26 17:39:53 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-6)(13 lines)
branch: master
Compiler [Typechecker]: Improved MINUS of scoped types.
Fixes argument matching when the value has a scoped type.
Fixes map(a, lower_case) some more.
2022-10-26 13:34:28 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+24/-15)(39 lines)
branch: master
Compiler [Typechecker]: Improved support for markers in function types.
Improved handling of eg
array(string) a = ({});
typeof(map(a, lower_case));
Giving the comparison
scope(0, function(int:int)|function(string:string)) -
function(string, @($1 = function(__unknown__...:mixed)))
where previously the marker $1 was not set properly.
2022-10-26 12:45:18 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
- pike/src/pike_types.h (+6/-4)(10 lines)
branch: master
Compiler [Typechecker]: Add PT_FLAG_REMAP_NO_STORE_MARKERS.
This flag inhibits altering the values for the marker set.
Monday 24 October 2022
2022-10-24 11:14:36 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+176/-164)(340 lines)
branch: master
Compiler [Typechecker]: Adjust evaluation order in type_binop().
Fixes erroneous warning for
__deprecated__(int(..-1)) - void|int(31bit)|__deprecated__(int(..-1))
Triggered when comparing typeof(__builtin.Nettle.Hash()->hash) with
typeof(Nettle.Hash()->hash).
Fixes testsuite failure.
Wednesday 19 October 2022
2022-10-19 10:53:57 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+19/-11)(30 lines)
branch: master
Compiler [Typechecker]: Reduce recursion in lower_new_check_call().
Tuesday 18 October 2022
2022-10-18 17:28:54 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-5)(17 lines)
branch: master
Compiler [Typechecker]: Improved AND of scoped types.
Fixes testsuite failure.
Monday 17 October 2022
2022-10-17 15:33:18 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-4)(13 lines)
branch: master
Compiler [Typechecker]: Fix infinite recursion.
Comparing two transitive types could cause infinite recursion.
Fixes#10097 .
Saturday 15 October 2022
2022-10-15 12:16:41 (7 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+20/-13)(33 lines)
branch: master
Compiler [Typechecker]: Improved handling of eg string - string(17:7bit).
Friday 14 October 2022
2022-10-14 10:30:16 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-10)(31 lines)
branch: master
Compiler [Typechecker]: Improved performance for binop on scope types.
Alleviates some of the issues in#10096 .
Thursday 29 September 2022
2022-09-29 12:51:42 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+30/-1)(31 lines)
branch: master
Compiler [Typechecker]: Allow indexing of type(object) with strings.
2022-09-29 11:25:04 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-0)(11 lines)
- pike/src/svalue.h (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Added PIKE_T_THRESHOLD.
This is a threshold function that coerces its argument to
mixed|void if the argument is not __unknown__. It can be
used to convert other type operators from set-operations
to boolean operations.
Wednesday 28 September 2022
2022-09-28 11:01:15 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.c (+6/-1)(7 lines)
branch: 8.0
Compiler [Typechecker]: Survive mixed|void in pop_type_stack().
2022-09-28 10:56:49 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+22/-14)(36 lines)
- pike/src/pike_compiler.cmod (+4/-2)(6 lines)
- pike/src/pike_types.cmod (+10/-4)(14 lines)
- pike/src/pike_types.h (+3/-2)(5 lines)
branch: master
Total 61
Compiler [Typechecker]: Survive mixed|void in pop_type_stack().
Tuesday 27 September 2022
2022-09-27 14:30:56 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.c (+2/-1)(3 lines)
branch: 8.0
Compiler [Typechecker]: Fix common consequential error.
Triggering a compilation error caused return statements for
later functions declared as returning void in the same program
to fail with:
Must return a value for a non-void function.
Expected: mixed.
Got : void.
2022-09-27 14:22:30 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix common consequential error.
Triggering a compilation error caused return statements for
later functions declared as returning void in the same program
to fail with:
Must return a value for a non-void function.
Expected: mixed.
Got : void.
2022-09-27 12:09:09 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-4)(25 lines)
branch: master
Compiler [Typechecker]: Inhibit erroneous warning.
Inhibits erroneous warning in strict_types mode when eg calling
predef::object_program() with a mixed value.
Fixes multiple testsuite failures.
2022-09-27 10:49:46 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+22/-2)(24 lines)
branch: master
Compiler [Typechecker]: Support object_program(obj)() again.
Fixes multiple testsuite failures.
Monday 26 September 2022
2022-09-26 13:32:21 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-3)(8 lines)
branch: master
Compiler [Typechecker]: Fix issue comparing function types.
Promote void to zero when comparing return types.
The following code is thus now allowed without complaint:
void foo(string, int|void);
function(string:int(0..)) f = foo;
Fixes compilation error in Tool.Hilfe.
2022-09-26 11:38:46 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+43/-36)(79 lines)
branch: master
Compiler [Typechecker]: Improved robustness in simple_describe_type().
Saturday 24 September 2022
2022-09-24 11:56:38 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Allow indexing of types with strings.
Friday 23 September 2022
2022-09-23 12:54:16 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-4)(15 lines)
branch: master
Compiler [Typechecker]: Fix T_OBJECT - T_PROGRAM.
Thursday 22 September 2022
2022-09-22 11:58:31 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+14/-98)(112 lines)
branch: master
Compiler [Typechecker]: Remove some redundant special cases.
Remove the compiler special cases for indices() and values()
as the type system already handles this.
Wednesday 21 September 2022
2022-09-21 11:59:05 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-4)(10 lines)
branch: master
Compiler [Typechecker]: Use low_discard_type() where appropriate.
2022-09-21 11:52:15 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+0/-0)(0 lines)
branch: master
Merge branch 'patches/bug10054'
* patches/bug10054:
Compiler [Typechecker]: compiler_discard_type() now leaves a marker.
2022-09-21 11:42:01 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.c (+0/-0)(0 lines)
branch: 8.0
Merge branch 'patches/bug10054' into 8.0
* patches/bug10054:
Compiler [Typechecker]: compiler_discard_type() now leaves a marker.
2022-09-21 11:39:57 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.c (+0/-0)(0 lines)
branch: 7.8
Merge branch 'patches/bug10054' into 7.8
* patches/bug10054:
Compiler [Typechecker]: Missed one place.
- pike/src/pike_types.c (+1/-1)(2 lines)
branch: a34d3e86eae905daa37c22c145d26b9c1c4463fa
Compiler [Typechecker]: Missed one place.
2022-09-21 11:33:09 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.c (+0/-0)(0 lines)
branch: 7.8
Merge branch 'patches/bug10054' into 7.8
* patches/bug10054:
Compiler [Typechecker]: compiler_discard_type() now leaves a marker.
2022-09-21 11:25:02 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/.gitattributes (+1/-1)(2 lines)
- pike/src/pike_types.c (+10/-3)(13 lines)
branch: dd45c6b99986a5e9c41ad87e8e45354d18820463
Compiler [Typechecker]: compiler_discard_type() now leaves a marker.
This restores the behavior to be compatible with that of
`free_type(compiler_pop_type());` but more robust.
Fixes#10054 .
Thursday 15 September 2022
2022-09-15 16:18:19 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix or of string types.
Fixes type for or with string(zero).
Fixes testsuite failure.
2022-09-15 12:35:04 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref.
2022-09-15 10:41:17 (8 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+27/-0)(27 lines)
- pike/src/svalue.h (+7/-2)(9 lines)
branch: master
Compiler [Typechecker]: Add PIKE_T_INT_OP_{MIN,MAX}.
NB: Also renumbers PIKE_T_INT_OP_MUL.
Sunday 28 August 2022
2022-08-28 12:46:31 (9 months ago) by Tobias S. Josefowitz <tobij@tobij.de>
- pike/src/pike_types.cmod (+4/-1)(5 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref.
Friday 26 August 2022
2022-08-26 12:28:22 (9 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/svalue.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Add type macro tIfexists().
Tuesday 16 August 2022
2022-08-16 11:51:52 (9 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+1/-14)(15 lines)
- pike/src/treeopt.in (+33/-8)(41 lines)
branch: master
Compiler [Typechecker]: Fix optimizer breaking type check.
The optimizer converted code like:
object(Foo) foo = base_obj;
foo++;
into
object(Foo) foo = base_obj + 1;
This caused the type checker to (erroneously) complain about
assigning 1 to foo if base_obj was typed as an object that
did not have an lfun::`+().
Now it is instead converted into:
object(Foo) foo = ([object(Foo)] base_obj) + 1;
Also removes the warning about no-op soft casts.
Tuesday 02 August 2022
2022-08-02 17:59:19 (10 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-0)(5 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Add bool_type_string.
Saturday 23 July 2022
2022-07-23 18:03:30 (10 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/svalue.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added symbol tInt255.
Wednesday 20 July 2022
2022-07-20 16:26:16 (10 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+26/-1)(27 lines)
- pike/src/svalue.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Added PIKE_T_INT_OP_MUL.
Friday 15 July 2022
2022-07-15 15:18:25 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-1)(6 lines)
branch: master
Compiler [Typechecker]: Improved type for bignum objects in _typeof().
Bignum objects now get the type scope(0, object(bignum)|int).
This helps in avoiding issues when the bignums aren't inspected
deeply. This fixes eg
return ([ "a": 0xffffffff00000000ffffffff ]);
Which previously caused a compilation error due to the compiler
derived type (mapping(string(1:97): int)) not matching the type
from _typeof() on the constant value (mapping(string: object)).
The compiler now instead derives the type
mapping(string(1:97): scope(0, int|object(is bignum)))
which is compatible with the result from _typeof().
Fixes testsuite failures on 32-bit platforms.
2022-07-15 10:54:05 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Retain remap state when A - (B|C).
Fixes lost state mapping for push_type_attribute().
Thursday 14 July 2022
2022-07-14 14:16:02 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-0)(11 lines)
- pike/src/pike_types.h (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Added state mapping to struct remap_state.
2022-07-14 13:37:12 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_compiler.cmod (+165/-42)(207 lines)
- pike/src/pike_compiler.h (+2/-0)(2 lines)
- pike/src/pike_types.cmod (+90/-9)(99 lines)
branch: master
Compiler [Typechecker]: Adjusted API for handling attributes.
Tuesday 12 July 2022
2022-07-12 18:40:03 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/constants.c (+2/-1)(3 lines)
- pike/src/las.cmod (+5/-4)(9 lines)
- pike/src/pike_types.cmod (+15/-17)(32 lines)
- pike/src/pike_types.h (+3/-4)(7 lines)
branch: master
Total 51
Compiler [Typechecker]: Use fun_name from call_state.
2022-07-12 17:07:03 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+3/-2)(5 lines)
- pike/src/constants.c (+2/-1)(3 lines)
- pike/src/las.cmod (+6/-5)(11 lines)
- pike/src/pike_types.cmod (+9/-8)(17 lines)
- pike/src/pike_types.h (+16/-6)(22 lines)
- pike/src/program.c (+2/-1)(3 lines)
branch: master
Total 61
Compiler [Typechecker]: Add function name field to call_state.
2022-07-12 16:10:06 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-0)(7 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added unknown_function_string.
Monday 11 July 2022
2022-07-11 16:15:36 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-2)(6 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_CMP_FUN_ARG.
This flag is intended to be used when handling attributes
on types that expand to sequences, do that the handler can
differentiate between matches like
array(__attribute__("foo", mixed))
and
function(__attribute__("foo", mixed)...: mixed)
in the latter case PT_FLAG_CMP_FUN_ARG will be set, so that
the handler can expand the attribute one argument at a time,
and in the former case it will not be set, so that the types
can be joined into a single type.
Saturday 09 July 2022
2022-07-09 11:49:04 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/constants.c (+2/-1)(3 lines)
- pike/src/las.cmod (+12/-11)(23 lines)
- pike/src/program.c (+6/-1)(7 lines)
branch: master
Compiler [Typechecker]: Update some more calls of new_get_return_type().
2022-07-09 11:41:11 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+32/-19)(51 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Send call_state to new_get_return_type().
Tuesday 05 July 2022
2022-07-05 15:25:15 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix broken check for T_MANY.
avoidable and bvoidable now contain other flags than just
PT_FLAG_CMP_VOIDABLE, so check just for the needed flag.
2022-07-05 14:56:05 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+2/-4)(6 lines)
branch: master
Compiler [Typechecker]: Fix leak of the type zero.
2022-07-05 14:33:38 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+71/-31)(102 lines)
- pike/src/pike_types.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Improved checking of variant overloading.
The variant overload check now attempts to match the variant
dispatcher better.
2022-07-05 12:39:53 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo.
2022-07-05 10:33:10 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+13/-3)(16 lines)
branch: master
Compiler [Typechecker]: Some adjustments of indexing of empty containers.
Indexing the empty array now gives an error again.
Indexing the empty mapping is now allowed again.
Monday 04 July 2022
2022-07-04 13:37:32 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-0)(10 lines)
- pike/src/svalue.h (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Added operator PIKE_T_APPLY.
Friday 01 July 2022
2022-07-01 11:20:11 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+45/-9)(54 lines)
branch: master
Compiler [Typechecker]: Fix detection of too many args to sscanf().
Thursday 30 June 2022
2022-06-30 12:36:23 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix detection of empty strings.
Update index_type() to know the difference between string(zero)
and string(zero: __unknown__). Only the latter is an empty string.
2022-06-30 11:10:20 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/sscanf.c (+54/-6)(60 lines)
branch: master
Compiler [Typechecker]: Improved typechecking of sscanf().
The format %c typechecker now requires a minimum size int
depending on the width of the input string.
The format %s (et al) typechecker now may result is strings
shorter than the input string.
Fixes testsuite failure for
array_sscanf("\x304b\x3066\x3044\x308a\x3087\x3046\x308a",
"%[^\x3042\x3044\x3046\x3048\x304a]")[0] ;
- pike/src/pike_types.cmod (+10/-0)(10 lines)
- pike/src/svalue.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Add PIKE_T_INT_OP_RANGE.
Monday 27 June 2022
2022-06-27 14:39:13 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+38/-21)(59 lines)
branch: master
Compiler [Typechecker]: Support casting to attributed types.
Also: Avoid complaining about assigning deprecated values
to deprecated variables.
2022-06-27 13:18:51 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Some more __deprecated__ fixes.
2022-06-27 11:36:14 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+40/-2)(42 lines)
branch: master
Compiler [Typechecker]: __deprecated__ should now work again.
Saturday 25 June 2022
2022-06-25 09:06:40 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix get_type_of_svalue() for containers containing functions.
Tuesday 21 June 2022
2022-06-21 14:49:12 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-5)(26 lines)
branch: master
Compiler [Typechecker]: More low-level operations for T_AND.
2022-06-21 11:05:37 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+43/-4)(47 lines)
branch: master
Compiler [Typechecker]: Perform some basic operations in low-level code.
2022-06-21 11:03:01 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Drop type attributes after modifying their contents.
Monday 20 June 2022
2022-06-20 10:59:49 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-0)(7 lines)
branch: master
Compiler [Typechecker]: Fix C-stack overflow.
Sunday 19 June 2022
2022-06-19 10:38:03 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+5/-1)(6 lines)
branch: master
Compiler [Typechecker]: Update missed call of check_splice_call().
Friday 17 June 2022
2022-06-17 10:55:03 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+336/-0)(336 lines)
- pike/src/svalue.h (+11/-1)(12 lines)
branch: master
Compiler [Typechecker]: Added PIKE_T_INT_OP_{AND,XOR}.
Thanks to Marcus Comstedt for the low-level code.
Wednesday 15 June 2022
2022-06-15 12:26:50 (11 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-5)(16 lines)
branch: master
Compiler [Typechecker]: Add special case.
Special case for function(__unknown__...:mixed|void).
Fixes testsuite failure.
Monday 13 June 2022
2022-06-13 18:48:14 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+49/-35)(84 lines)
branch: master
Compiler [Typechecker]: Call apply_attribute_constant() also when no constant.
Also adjusts the third argument to apply_attribute_constant() to be
the subset of the argument type that matched the declared type.
Fixes handling of the sscanf_input attribute.
2022-06-13 17:29:20 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-3)(12 lines)
branch: master
Compiler [Typechecker]: Fix expected type for sscanf lvalues.
2022-06-13 17:26:36 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_compiler.cmod (+9/-0)(9 lines)
- pike/src/sscanf.c (+35/-8)(43 lines)
branch: master
Compiler [Typechecker]: Improved type checking for sscanf("%s").
2022-06-13 15:23:17 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+100/-84)(184 lines)
branch: master
Compiler [Typechecker]: Support strict checking of sscanf().
Saturday 11 June 2022
2022-06-11 11:12:30 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-23)(25 lines)
branch: master
Compiler [Typechecker]: Code cleanup.
Also fixes a compilation error.
2022-06-11 11:08:19 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_compiler.cmod (+19/-5)(24 lines)
- pike/src/pike_types.cmod (+11/-2)(13 lines)
- pike/src/sprintf.c (+22/-15)(37 lines)
- pike/src/sscanf.c (+14/-11)(25 lines)
branch: master
Total 99
Compiler [Typechecker]: Changed API for apply_type_attribute() et al.
They now get a mapping that they may use to keep state between arguments.
2022-06-11 10:51:08 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+2/-1)(3 lines)
- pike/src/constants.c (+2/-1)(3 lines)
- pike/src/pike_types.h (+18/-3)(21 lines)
branch: master
Compiler [Typechecker]: Add support for a mapping to the call_state.
Friday 10 June 2022
2022-06-10 20:29:54 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+6/-1)(7 lines)
- pike/src/constants.c (+5/-1)(6 lines)
- pike/src/las.cmod (+22/-9)(31 lines)
- pike/src/pike_types.cmod (+98/-59)(157 lines)
- pike/src/pike_types.h (+18/-2)(20 lines)
branch: master
Total 221
Compiler [Typechecker]: Add struct call_state.
This struct is intended to contain state that is to be propagated
between arguments during typechecking of function calls.
Thursday 09 June 2022
2022-06-09 18:14:32 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-2)(12 lines)
branch: master
Compiler [Typechecker]: Avoid combinatorial explosion.
Friday 03 June 2022
2022-06-03 21:28:45 (12 months ago) by Marcus Comstedt <marcus@mc.pp.se>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix warning
2022-06-03 10:52:38 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+2/-2)(4 lines)
branch: master
Compiler [Typechecker]: Zeroes are now only implicit in compat mode.
Thursday 02 June 2022
2022-06-02 12:55:00 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-3)(10 lines)
branch: master
Compiler [Typechecker]: void is converted to zero when in container type.
Fixes multiple warnings.
2022-06-02 11:10:04 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-11)(23 lines)
branch: master
Compiler [Typechecker]: No more implicit nullable for function args.
Fixes multiple warnings from eg check_variant_overload().
Wednesday 01 June 2022
2022-06-01 18:13:48 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+8/-5)(13 lines)
branch: master
Compiler [Typechecker]: Improved backward compat.
Add implicit zero types to function argument types in compat mode.
Also some other minor type cleanups.
2022-06-01 10:43:03 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+14/-2)(16 lines)
branch: master
Compiler [Typechecker]: Use new APIs when checking LFUN types.
2022-06-01 10:28:58 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-6)(13 lines)
branch: master
Compiler [Typechecker]: Fixed bug in handling of PT_FLAG_CMP_IGNORE_EXTRA_ARGS.
Tuesday 31 May 2022
2022-05-31 12:41:36 (12 months ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Improved handling of mixed when CMP_NULLABLE.
Monday 30 May 2022
2022-05-30 13:14:39 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Fix multi-reporting of bad assignments mk II.
2022-05-30 11:29:40 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Complain about bad assignments only in the last pass.
Fixes double reporting of "Bad type in assignment.".
Saturday 28 May 2022
2022-05-28 11:16:34 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-1)(5 lines)
branch: master
Compiler [Typechecker]: Fix checking of functions returning void.
Friday 20 May 2022
2022-05-20 11:53:33 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+20/-44)(64 lines)
branch: master
Compiler [Typechecker]: Improved checking of calls of inverted functions.
Calling eg ~function(~int...:mixed) (ie "exists int") with mixed now
results in the same as calling it with int.
Fixes several testsuite failures in eg the Calendar module.
Monday 16 May 2022
2022-05-16 16:48:52 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-6)(16 lines)
branch: master
Compiler [Typechecker]: Add special case for T_TRANSITIVE - T_MANY.
Special case for subtracting function(:X) from a transitive type.
2022-05-16 16:25:02 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix typo.
2022-05-16 15:40:31 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-1)(10 lines)
branch: master
Compiler [Typechecker]: Improved handling of T_TRANSITIVE - T_MANY.
Friday 13 May 2022
2022-05-13 11:36:21 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+29/-18)(47 lines)
branch: master
Compiler [Typechecker]: Improved detection of strict mismatches.
Fixes erroneous result type from eg map("foobar"/2, reverse).
Thursday 12 May 2022
2022-05-12 15:46:53 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-0)(7 lines)
branch: master
Compiler [Typechecker]: Fix erroneous strict types warning.
Calling a function that expects a function argument with a function
of type scope(function(A...:X)|function(B...:Y)) is OK if either of
function(A...:X) or function(B...:Y) is OK.
Wednesday 11 May 2022
2022-05-11 14:29:31 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Do not accept more arguments than declared.
Tuesday 10 May 2022
2022-05-10 10:28:30 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Use the correct flags in check_node_type().
- pike/src/pike_types.cmod (+20/-12)(32 lines)
branch: master
Compiler [Typechecker]: Fix some special cases with T_VOID in type_binop().
Also adds some previously missing handling of markers.
Sunday 08 May 2022
2022-05-08 23:43:11 (1 year ago) by Tobias S. Josefowitz <tobij@tobij.de>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fixed reference handling in store_marker()
In cases where the value passed to store_marker() was NULL but the
marker was present in the mapping, we used to overwrite the marker with
itself. By doing so, assign_svalue() (as used by low_mapping_insert())
would free the same value we were inserting. This is never great but has
especially noticeable consequences when the value only had a single
reference.
Instead, we now simply do not re-insert the value in these cases.
Saturday 07 May 2022
2022-05-07 21:59:14 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-2)(14 lines)
- pike/src/pike_types.h (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Support an alternate set of remappings.
Also makes simple_describe_remap_state() available without PIKE_DEBUG.
2022-05-07 20:59:41 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-2)(13 lines)
branch: master
Compiler [Typechecker]: Support multiple store in store_marker().
2022-05-07 20:26:52 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+28/-0)(28 lines)
branch: master
Compiler [Typechecker]: Added helper simple_describe_remap_state().
2022-05-07 20:09:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+56/-0)(56 lines)
branch: master
Compiler [Typechecker]: More tracing.
2022-05-07 19:16:01 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: More tracing.
2022-05-07 18:55:07 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fixed another NULL-deref.
2022-05-07 18:53:01 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-3)(8 lines)
branch: master
Compiler [Typechecker]: Fix some NULL-derefs.
2022-05-07 18:36:28 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-2)(3 lines)
branch: master
Compiler [Typechecker]: Enable the cyclic check.
2022-05-07 18:33:20 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-0)(7 lines)
branch: master
Compiler [Typechecker]: Trace binops at debug level 3+.
2022-05-07 18:18:03 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/cyclic.c (+14/-6)(20 lines)
- pike/src/cyclic.h (+16/-7)(23 lines)
- pike/src/pike_types.cmod (+21/-27)(48 lines)
branch: master
Compiler [Typechecker]: Survive cyclical types.
2022-05-07 16:42:26 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref.
2022-05-07 16:23:38 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+13/-8)(21 lines)
branch: master
Compiler [Typechecker]: Ignore the return value for functions returning void.
2022-05-07 15:45:49 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-3)(9 lines)
branch: master
Compiler [Typechecker]: Fix subtraction of void.
2022-05-07 14:30:43 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Only output type flags at high debug levels.
2022-05-07 12:24:00 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+14/-1)(15 lines)
branch: master
Compiler [Typechecker]: Fix soft casting to program.
Friday 06 May 2022
2022-05-06 10:40:49 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-0)(9 lines)
branch: master
Compiler [Typechecker]: Upgrade __unknown__ return value to mixed.
Fixes erroneous errors when calling the generic function type
(ie function(mixed...:__unknown__)).
Wednesday 04 May 2022
2022-05-04 12:40:26 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+75/-58)(133 lines)
branch: master
Compiler [Typechecker]: Use the marker remapper in lower_new_check_call().
Tuesday 03 May 2022
2022-05-03 14:24:27 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+14/-2)(16 lines)
branch: master
Compiler [Typechecker]: Improved handling of markers for PIKE_T_TRANSITIVE.
Monday 02 May 2022
2022-05-02 10:13:16 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-4)(9 lines)
branch: master
Compiler [Typechecker]: Removed inline for debug_mk_type().
Saturday 16 April 2022
2022-04-16 12:36:37 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+18/-1)(19 lines)
branch: master
Compiler [Typechecker]: Fix check_variant_overload().
Thursday 14 April 2022
2022-04-14 16:38:01 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+14/-2)(16 lines)
- pike/src/program.c (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix checking of overloading of variants.
Wednesday 13 April 2022
2022-04-13 11:44:39 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+19/-0)(19 lines)
branch: master
Compiler [Typechecker]: Added some special cases.
Special cases for matching against function(__unknown__...:mixed).
Tuesday 12 April 2022
2022-04-12 14:27:05 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+10/-3)(13 lines)
branch: master
Compiler [Typechecker]: Never complain about return 0.
Do not complain about return 0 that the compiler may have
added implicitly.
2022-04-12 12:59:15 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-191)(192 lines)
branch: master
Compiler [Typechecker]: Remove some dead code.
Removes low_and_pike_types() et al as they are no longer used.
Fixes compile-time warning about unused static function.
2022-04-12 11:26:36 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-3)(5 lines)
branch: master
Compiler [Typechecker]: Use type_binop() to implement and_pike_types().
Monday 11 April 2022
2022-04-11 10:18:37 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+160/-12)(172 lines)
branch: master
Compiler [Typechecker]: Add and use {push_,}expand_transitive_remap().
Fixes some NULL-dereferences on NULL markers.
Sunday 10 April 2022
2022-04-10 14:04:48 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+85/-38)(123 lines)
branch: master
Compiler [Typechecker]: Improved BINOP_MINUS for functions.
Saturday 09 April 2022
2022-04-09 11:01:45 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix infinite loop.
Friday 08 April 2022
2022-04-08 16:10:27 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+127/-92)(219 lines)
branch: master
Compiler [Typechecker]: Some remapper API changes.
The remap_state now contains one mapping for each of the binop
parameters. This is to make it simple to save and restore the
state for the binop parameters separately.
lookup_marker() now supports markers set to __unknown__.
Thursday 07 April 2022
2022-04-07 10:48:06 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+32/-13)(45 lines)
branch: master
Compiler [Typechecker]: Improved handling of markers and PT_BINOP_MINUS.
Wednesday 06 April 2022
2022-04-06 16:41:40 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+14/-3)(17 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_REMAP_KEEP_MARKERS.
Tuesday 05 April 2022
2022-04-05 16:32:24 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-1)(5 lines)
branch: master
Compiler [Typechecker]: Improved handling of __unknown__.
multiset(__unknown__) & multiset(mixed) ==> multiset(__unknown)
multiset(__unknown__) - multiset(mixed) ==> __unknown__
Monday 04 April 2022
2022-04-04 14:44:21 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo.
Sunday 03 April 2022
2022-04-03 12:16:26 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+15/-0)(15 lines)
branch: master
Compiler [Typechecker]: Support PIKE_T_OPERATOR in transitive types.
Saturday 02 April 2022
2022-04-02 13:18:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+34/-5)(39 lines)
branch: master
Compiler [Typechecker]: Added short-hand for PIKE_T_TRANSITIVE.
transitive(__unknown__, A) is now equivalent to transitive(A, A).
Friday 01 April 2022
2022-04-01 18:40:36 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+19/-10)(29 lines)
branch: master
Compiler [Typechecker]: Improve handling of PIKE_T_TRANSITIVE some more.
2022-04-01 12:36:42 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+34/-3)(37 lines)
branch: master
Compiler [Typechecker]: Improved handling of PIKE_T_TRANSITIVE.
Reduces recursion on TRANSITIVE PT_BINOP_AND MANY.
Thursday 31 March 2022
2022-03-31 12:04:06 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-7)(11 lines)
branch: master
Compiler [Typechecker]: Fix lots of erroneous warnings.
Wednesday 30 March 2022
2022-03-30 17:02:23 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix another typo.
2022-03-30 17:00:00 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo.
2022-03-30 16:04:32 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+20/-7)(27 lines)
branch: master
Compiler [Typechecker]: Fix multiple NULL-dereferences.
Tuesday 29 March 2022
2022-03-29 16:32:52 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+23/-14)(37 lines)
branch: master
Compiler [Typechecker]: Improved handling of PIKE_T_OPERATOR.
Monday 28 March 2022
2022-03-28 11:40:40 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+8/-7)(15 lines)
branch: master
Compiler [Typechecker]: Improved handling of mixed in int_op's.
Sunday 27 March 2022
2022-03-27 13:29:04 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-4)(10 lines)
branch: master
Compiler [Typechecker]: Fix lost array nesting.
The array nesting was lost when calling transitive functions
nested in arrays.
Saturday 26 March 2022
2022-03-26 14:19:56 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix marker loss in new_check_call().
Friday 25 March 2022
2022-03-25 17:01:16 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-435)(436 lines)
branch: master
Compiler [Typechecker]: Remove some dead code.
Thursday 24 March 2022
2022-03-24 12:24:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix compile-time type for negative constants.
2022-03-24 11:27:02 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-1)(12 lines)
branch: master
Compiler [Typechecker]: Support marker expansion in cdr of PIKE_T_OPERATOR.
Wednesday 23 March 2022
2022-03-23 20:13:31 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-8)(9 lines)
branch: master
Compiler [Typechecker]: Remove some broken DWIM in push_type_operator().
Fixes issues with PIKE_T_OPERATOR and PIKE_T_UNKNOWN.
2022-03-23 17:54:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+23/-2)(25 lines)
branch: master
Compiler [Typechecker]: More type operator fixes.
2022-03-23 13:13:47 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+99/-0)(99 lines)
- pike/src/svalue.h (+11/-0)(11 lines)
branch: master
Compiler [Typechecker]: Add PIKE_T_INT_OP_SUB.
This is a type operator that returns the type for the result
of subtracting two integer ranges.
Sunday 20 March 2022
2022-03-20 14:44:57 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+67/-27)(94 lines)
branch: master
Compiler [Typechecker]: Consider declared array range in check_splice_call().
This makes it possible to avoid warnings about array max length
restrictions when using the @-operator when using strict types.
2022-03-20 14:18:13 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+20/-2)(22 lines)
branch: master
Compiler [Typechecker]: Fix handling of mixed in get_int_type_range().
Also adds some related doc.
Friday 18 March 2022
2022-03-18 15:05:26 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+20/-4)(24 lines)
branch: master
Compiler [Typechecker]: Fix type for deep automap expressions.
Fixes the type for expressions like
({ ({ 1, 2 }), ({ 3,4 }) })[*][*] + 10;
Also updated las.cmod::is_automap_arg_list() to return the automap depth.
Fixes some testsuite failures.
Thursday 17 March 2022
2022-03-17 16:37:09 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+18/-11)(29 lines)
branch: master
Compiler [Typechecker]: More fix_overloaded_type() fixes.
2022-03-17 14:48:59 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+12/-1)(13 lines)
branch: master
Compiler [Typechecker]: Handle some T_OR nodes in fix_overloaded_type().
Fixes the returned type for indices() and values() in some now
common cases.
Fixes some testsuite failures.
2022-03-17 11:02:17 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-4)(15 lines)
branch: master
Compiler [Typechecker]: Fix result from match_types() and T_NOT.
Wednesday 16 March 2022
2022-03-16 18:12:39 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-6)(8 lines)
branch: master
Revert "Compiler [Typechecker]: Promote type operator failure to void."
This commit broke the type checking of foreach() in Getopt.
This reverts commit 4ebedfbedd5113292b43577f1bad339bbbae1f28.
2022-03-16 17:15:18 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-1)(8 lines)
branch: master
Compiler [Typechecker]: Promote type operator failure to void.
Fixes some obscure failures.
2022-03-16 16:23:38 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+40/-14)(54 lines)
branch: master
Compiler [Typechecker]: Improved low_get_return_type().
2022-03-16 14:13:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+52/-2)(54 lines)
branch: master
Compiler [Typechecker]: Implement old check_call() API using new API.
low_get_return_type() is now implemented with low_new_check_call()
and new_get_return_type(). This should make the type checker more
consistent.
Also adds some documentation.
Monday 14 March 2022
2022-03-14 20:10:38 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Fix yet another NULL-deref.
2022-03-14 18:48:17 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-1)(6 lines)
branch: master
Compiler [Typechecker]: Fix some more NULL-derefs.
2022-03-14 15:51:40 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref.
2022-03-14 13:28:23 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+47/-16)(63 lines)
branch: master
Compiler [Typechecker]: Improved behavior for {index,key}_type().
They no longer upgrade __unknown__ results to mixed.
key_type() now handles __unknown__, T_AND and T_NOT properly.
key_type() now returns the declared index type for T_ARRAY
and T_STRING.
Added some documentation.
Sunday 13 March 2022
2022-03-13 13:55:29 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+6/-4)(10 lines)
- pike/src/pike_types.cmod (+7/-1)(8 lines)
branch: master
Compiler [Typechecker]: Changed type for F_PUSH_ARRAY nodes.
This is in preparation of having check_splice_call() account
for any array length restrictions.
Thursday 10 March 2022
2022-03-10 11:37:34 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/operators.c (+13/-3)(16 lines)
- pike/src/svalue.h (+9/-1)(10 lines)
- pike/src/testsuite.in (+6/-1)(7 lines)
branch: master
Compiler [Typechecker]: Improved type for predef::`+().
The type resulting from adding strings with integers and/or floats
should now be reasonably correct.
Also adds a few new type macros.
Tuesday 08 March 2022
2022-03-08 12:28:13 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+8/-0)(8 lines)
branch: master
Compiler [Typechecker]: Do not generate the type zero = zero.
Monday 07 March 2022
2022-03-07 17:18:03 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref.
Sunday 06 March 2022
2022-03-06 17:35:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-dereference.
Saturday 05 March 2022
2022-03-05 12:58:47 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-0)(9 lines)
branch: master
Compiler [Typechecker]: Relax argument checking for zero.
Improves type derivation for function calls where the arguments
have types like string|zero or object|zero.
Thursday 03 March 2022
2022-03-03 12:52:00 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+15/-16)(31 lines)
branch: master
Compiler [Typechecker]: Clean up describing of some types.
Tuesday 01 March 2022
2022-03-01 16:23:42 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+31/-10)(41 lines)
branch: master
Compiler [Typechecker]: Fix matching against mixed.
Wednesday 23 February 2022
2022-02-23 14:29:38 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+29/-6)(35 lines)
- pike/src/pike_types.h (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_{NULLABLE,MIXED}.
2022-02-23 13:36:22 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-1)(7 lines)
branch: master
Compiler [Typechecker]: Fix PT_FLAG_MIXED with T_NOT nodes.
Tuesday 22 February 2022
2022-02-22 12:46:27 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+16/-0)(16 lines)
branch: master
Compiler [Typechecker]: Improved handling of common case in <=.
Monday 21 February 2022
2022-02-21 16:24:14 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-2)(8 lines)
branch: master
Compiler [Typechecker]: Fix calling of negated types.
Calling of not(zero) now returns mixed.
Sunday 20 February 2022
2022-02-20 13:17:02 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Fix indexing of strings and arrays with mixed.
Saturday 19 February 2022
2022-02-19 14:51:55 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+16/-8)(24 lines)
branch: master
Compiler [Typechecker]: mixed is a superset of all types except void.
Types like array(int|mixed) should now become array(mixed).
Also removes promotion of __unknown__ to void in an obscure case.
Friday 18 February 2022
2022-02-18 14:58:55 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-9)(20 lines)
- pike/src/pike_types.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Clean up handling of PT_FLAG_VOIDABLE.
Thursday 17 February 2022
2022-02-17 11:08:34 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Fix PT_FLAG_VOIDABLE for T_NOT nodes.
Wednesday 16 February 2022
2022-02-16 17:21:34 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+31/-5)(36 lines)
- pike/src/pike_types.h (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Add type flag PT_FLAG_VOIDABLE.
Monday 07 February 2022
2022-02-07 16:18:24 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+12/-10)(22 lines)
branch: master
Compiler [Typechecker]: Add implicit zeroes in 8.0 and earlier compat mode.
Friday 28 January 2022
2022-01-28 16:05:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+18/-24)(42 lines)
branch: master
Compiler [Typechecker]: Improved checking of assignments.
Sunday 23 January 2022
2022-01-23 15:58:25 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Stricter check of array contents in soft casts.
Tuesday 18 January 2022
2022-01-18 11:52:04 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+12/-1)(13 lines)
branch: master
Compiler [Typechecker]: Document some special cases.
Sunday 16 January 2022
2022-01-16 15:29:16 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+11/-5)(16 lines)
branch: master
Compiler [Typechecker]: Improved checking of splice operator some more.
Saturday 15 January 2022
2022-01-15 13:34:49 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+15/-6)(21 lines)
branch: master
Compiler [Typechecker]: Improved type check for the splice operator.
Wednesday 12 January 2022
2022-01-12 16:08:41 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Relax type for lfun::_sprintf().
It is common to have _sprintf()'s that do not care about
their arguments, so allow _sprintf()'s without arguments.
Fixes a few testsuite failures.
Monday 10 January 2022
2022-01-10 13:08:13 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Improved type for setters.
Fixes some warnings.
Saturday 08 January 2022
2022-01-08 15:15:03 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-2)(11 lines)
branch: master
Compiler [Typechecker]: Fix A - (B|C) in INEXACT mode.
Friday 07 January 2022
2022-01-07 12:42:24 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo in type_binop().
Thursday 06 January 2022
2022-01-06 13:26:03 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+42/-17)(59 lines)
branch: master
Compiler [Typechecker]: Improved handling of NOT in type_binop().
Fixes the case
mixed - (mixed|zero) aka (!zero) - mixed
which used to result in
!(mixed|zero)
rather than the expected
__unknown__
Fixes several warnings.
Tuesday 04 January 2022
2022-01-04 11:49:16 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Adjust types for assignment lfuns.
The values returned from lfun::`[]=() and lfun::`->=() are
currently ignored, so allow returning void.
Fixes a few more warnings.
Monday 03 January 2022
2022-01-03 11:30:41 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+4/-3)(7 lines)
branch: master
Compiler [Typechecker]: Improved types for assignment lfuns.
Fixes some warnings.
Sunday 02 January 2022
2022-01-02 12:58:57 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+56/-14)(70 lines)
branch: master
Compiler [Typechecker]: Improved handling of markers in type_binop().
Saturday 01 January 2022
2022-01-01 11:54:20 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-0)(9 lines)
branch: master
Compiler [Typechecker]: Fix mapping leak in type_binop().
Friday 31 December 2021
2021-12-31 12:29:30 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-13)(34 lines)
branch: master
Compiler [Typechecker]: Fix indexing of arrays with strings.
Due to the string length being part of the string type, the
old method started failing for strings with known lengths.
Fixes multiple warnings.
Thursday 30 December 2021
2021-12-30 11:31:47 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-3)(24 lines)
- pike/src/pike_types.h (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Add PT_FLAG_REMAP_INEXACT.
This flag causes type_binop() to cheat a bit, and is useful if
its result is only going to be used to compare against NULL.
This speeds up pike_types_le() quite a bit for some cases.
Wednesday 29 December 2021
2021-12-29 13:00:40 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Missed a line in previous commit.
2021-12-29 11:56:46 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+9/-1)(10 lines)
branch: master
Compiler [Typechecker]: Reduce complaints about lfuns.
Do not complain about optional arguments missing in prototypes
for lfuns implemented in Pike.
Tuesday 28 December 2021
2021-12-28 16:24:30 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+20/-9)(29 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_CMP_IGNORE_EXTRA_ARGS.
This is a flag for type_binop() that does the reverse of what
LE_STRICT_FUN does for low_pike_types_le().
Monday 27 December 2021
2021-12-27 11:54:40 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-0)(6 lines)
branch: master
Compiler [Typechecker]: Disable INSEPARABLE special case in type_binop().
Sunday 26 December 2021
2021-12-26 12:16:54 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+15/-2)(17 lines)
- pike/src/pike_compiler.cmod (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Adjust for pop_type_stack(T_ARRAY) change.
Saturday 25 December 2021
2021-12-25 13:57:37 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Make pop_type_stack() array index type aware.
Friday 24 December 2021
2021-12-24 15:33:36 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+47/-34)(81 lines)
branch: master
Compiler [Typechecker]: Improved support for markers in type_binop().
Thursday 23 December 2021
2021-12-23 12:32:00 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+122/-0)(122 lines)
branch: master
Compiler [Typechecker]: Back-patch marker assignments in type_binop().
Wednesday 22 December 2021
2021-12-22 15:43:00 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-2)(8 lines)
branch: master
Compiler [Typechecker]: Updated internal doc.
Tuesday 21 December 2021
2021-12-21 12:28:38 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+14/-4)(18 lines)
branch: master
Compiler [Typechecker]: Support __unknown__ in {lookup,store}_marker().
Also: lookup_marker() now adds a reference to the returned type.
Monday 20 December 2021
2021-12-20 17:33:20 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+114/-37)(151 lines)
branch: master
Compiler [Typechecker]: More marker propagation handling for T_OR.
Sunday 19 December 2021
2021-12-19 15:25:12 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+25/-2)(27 lines)
branch: master
Compiler [Typechecker]: Handle marker propagation for T_OR.
Saturday 18 December 2021
2021-12-18 15:59:28 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Minor code clean up.
Reduce number of special cases somewhat.
Friday 17 December 2021
2021-12-17 12:54:21 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+149/-114)(263 lines)
branch: master
Compiler [Typechecker]: Move markers mapping to remap_state.
Cleans up the API somewhat, and enables allocating the mapping on demand.
Thursday 16 December 2021
2021-12-16 12:39:50 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+56/-43)(99 lines)
branch: master
Compiler [Typechecker]: Improved handling of markers in type_binop().
Also removes some debug.
Tuesday 14 December 2021
2021-12-14 15:21:41 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Support nested T_OR in get_int_type_range().
Sunday 12 December 2021
2021-12-12 16:42:26 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-0)(6 lines)
branch: master
Compiler [Typechecker]: Added some FIXMEs regarding range_type().
Tuesday 07 December 2021
2021-12-07 12:27:51 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-4)(8 lines)
branch: master
Compiler [Typechecker]: Improved handling of PT_BINOP_MINUS.
Monday 06 December 2021
2021-12-06 15:39:51 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: new_get_return_type(__unknown__, X) == __unknown__.
Fixes issues eg with type checking of foreach().
Sunday 05 December 2021
2021-12-05 10:18:18 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-4)(5 lines)
branch: master
Compiler [Typechecker]: Remove the mixed fallback from apply_type_operator().
Upgrading types from __unknown__ to mixed was not a good idea.
Fixes several warnings.
Friday 03 December 2021
2021-12-03 11:44:13 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-7)(28 lines)
branch: master
Compiler [Typechecker]: More find_lfun_type() fixes.
Thursday 02 December 2021
2021-12-02 11:56:03 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Fix some issues with find_lfun_type().
find_lfun_type() now returns NULL for object types known not
to have the lfun.
Fixes a string leak.
Wednesday 01 December 2021
2021-12-01 17:02:13 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Disable excessive type warning.
Tuesday 30 November 2021
2021-11-30 11:26:29 (1 year ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+13/-5)(18 lines)
branch: master
Compiler [Typechecker]: Improved type checking of foreach().
Also swaps the expected and got types in some related diagnostics
to be more intuitive.
Sunday 28 November 2021
2021-11-28 13:39:12 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+29/-10)(39 lines)
branch: master
Compiler [Typechecker]: Support nested type operators.
Saturday 27 November 2021
2021-11-27 14:00:31 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+16/-0)(16 lines)
- pike/src/svalue.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Add type operator get_return.
Tuesday 23 November 2021
2021-11-23 16:37:24 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-0)(21 lines)
branch: master
Compiler [Typechecker]: Filter type markers with their match pattern.
Fixes type markers containing non-matching types.
Monday 22 November 2021
2021-11-22 16:43:25 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+11/-5)(16 lines)
branch: master
Compiler [Typechecker]: Improved checking of foreach.
Sunday 21 November 2021
2021-11-21 16:52:21 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-4)(8 lines)
branch: master
Compiler [Typechecker]: Fix some issues with __unknown__.
2021-11-21 16:19:37 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-5)(9 lines)
branch: master
Compiler [Typechecker]: Improved handling of index type for arrays.
Saturday 20 November 2021
2021-11-20 15:55:02 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-5)(8 lines)
branch: master
Compiler [Typechecker]: Improved type for empty array.
Friday 19 November 2021
2021-11-19 13:49:45 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-1)(10 lines)
branch: master
Compiler [Typechecker]: Fix type stack underflow.
Wednesday 17 November 2021
2021-11-17 16:09:33 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+15/-11)(26 lines)
branch: master
Compiler [Typechecker]: Improved handling of nullable types.
Tuesday 16 November 2021
2021-11-16 14:34:46 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+23/-2)(25 lines)
branch: master
Compiler [Typechecker]: Improved zero handling in check_node_type().
Fixes several issues where nullable types match only for zero.
Sunday 14 November 2021
2021-11-14 16:10:05 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-4)(10 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added flag PT_FLAG_REMAP_INHIBIT.
Saturday 13 November 2021
2021-11-13 15:02:00 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-94)(99 lines)
branch: master
Compiler [Typechecker]: Remove stupid_describe_type_string().
This was a remnant of the really old type checker, and has not been
used for at least 10 years.
Thursday 11 November 2021
2021-11-11 12:06:36 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-10)(22 lines)
branch: master
Compiler [Typechecker]: Render markers with the prefix '$'.
This reduces ambiguity when markers and integers are mixed.
Wednesday 10 November 2021
2021-11-10 02:44:24 (2 years ago) by Tobias S. Josefowitz <tobij@tobij.de>
- pike/src/pike_types.cmod (+16/-7)(23 lines)
- pike/src/testsuite.in (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Empty string has unknown range
The empty string now has no/unknown range and is a typewise valid match
for all possible string ranges.
Sunday 07 November 2021
2021-11-07 14:33:11 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-4)(9 lines)
branch: master
Compiler [Typechecker]: Markers now default to __unknown__.
Saturday 06 November 2021
2021-11-06 20:08:03 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-3)(7 lines)
branch: master
Compiler [Typechecker]: Improved handling of __unknown__.
2021-11-06 19:56:24 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-1)(5 lines)
branch: master
Compiler [Typechecker]: Fix handling of __unknown__ in string types.
2021-11-06 18:47:21 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Do not keep the type name when its value changes.
Monday 01 November 2021
2021-11-01 15:35:07 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix type for lfun::`[]=() to match documentation.
Monday 27 September 2021
2021-09-27 16:44:40 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+19/-13)(32 lines)
branch: master
Compiler [Typechecker]: Improved diagnostics --with-dmalloc.
Sunday 26 September 2021
2021-09-26 14:38:02 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Fix type leak in type_binop().
Saturday 25 September 2021
2021-09-25 15:05:15 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Fix type leak in find_lfun_type().
Wednesday 15 September 2021
2021-09-15 18:15:23 (2 years ago) by Marcus Comstedt <marcus@mc.pp.se>
- pike/src/pike_types.c (+3/-2)(5 lines)
branch: 8.0
Compiler [Typechecker]: Workaround for gcc optimization of signed overflow
The expression "(min1 > max2) && (min1 > max2 + 1)" got optimized into
"(min1 > max2 + 1)" by gcc, because of min1 is larger than max2 + 1,
then it clearly must be larger than max2 as well... Except when max2 + 1
is a signed overflow. So explicitly check for that instead and hope gcc
doesn't optimize away that check as well...
2021-09-15 18:09:55 (2 years ago) by Marcus Comstedt <marcus@mc.pp.se>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Workaround for gcc optimization of signed overflow
The expression "(min1 > max2) && (min1 > max2 + 1)" got optimized into
"(min1 > max2 + 1)" by gcc, because of min1 is larger than max2 + 1,
then it clearly must be larger than max2 as well... Except when max2 + 1
is a signed overflow. So explicitly check for that instead and hope gcc
doesn't optimize away that check as well...
Wednesday 14 July 2021
2021-07-14 12:22:56 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
- pike/src/pike_types.h (+3/-1)(4 lines)
- pike/src/testsuite.in (+17/-0)(17 lines)
branch: master
Compiler [Typechecker]: Fix erroneous deprecation warning in obscure case.
Fixes [REP-60].
2021-07-14 12:12:57 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.c (+5/-2)(7 lines)
- pike/src/testsuite.in (+17/-0)(17 lines)
branch: 8.0
Compiler [Typechecker]: Fix erroneous deprecation warning in obscure case.
Fixes [REP-60].
Sunday 11 July 2021
2021-07-11 15:33:27 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-4)(14 lines)
branch: master
Compiler [Typechecker]: Fixed ref-count errors with PIKE_T_OPERATOR.
Saturday 10 July 2021
2021-07-10 16:32:23 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-0)(9 lines)
branch: master
Compiler [Typechecker]: Detect circularities in simple_describe_type().
Sunday 04 July 2021
2021-07-04 17:56:57 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+58/-3)(61 lines)
- pike/src/pike_types.h (+5/-2)(7 lines)
- pike/src/svalue.h (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Added type operators set_car and set_cdr.
Also improves robustness regarding NULL in types.
Monday 28 June 2021
2021-06-28 14:58:49 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref.
Thanks to Chris Angelico <rosuav@gmail.com> for the
report and test case.
Fixes [LysLysKOM 24784470].
Wednesday 09 June 2021
2021-06-09 14:00:24 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-2)(6 lines)
branch: master
Compiler [Typechecker]: Improved handling of __unknown__ in `|().
Friday 04 June 2021
2021-06-04 18:12:39 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-6)(15 lines)
branch: master
Compiler [Typechecker]: Fix another issue with __unknown__.
Thursday 03 June 2021
2021-06-03 17:28:36 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Support __unknown__ in more places.
Wednesday 02 June 2021
2021-06-02 11:21:07 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Reduce strict type warnings somewhat.
Friday 21 May 2021
2021-05-21 11:18:52 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Do not lose track of markers.
Thursday 20 May 2021
2021-05-20 12:06:15 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+34/-27)(61 lines)
branch: master
Compiler [Typechecker]: Fix some issues with binop's on __unknown__.
Fixes some erroneous warnings.
Tuesday 11 May 2021
2021-05-11 11:05:26 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-4)(9 lines)
branch: master
Compiler [Typechecker]: Move some diagnoistics to PIKE_EXTRA_DEBUG.
Monday 10 May 2021
2021-05-10 20:22:21 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: More use of PIKE_T_UNKNOWN.
2021-05-10 14:12:19 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-3)(7 lines)
branch: master
Compiler [Typechecker]: Improved robustness of lower_new_check_call().
Friday 07 May 2021
2021-05-07 16:27:28 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-5)(11 lines)
branch: master
Compiler [Typechecker]: Improve robustness against NULL in free_type().
Monday 03 May 2021
2021-05-03 17:19:24 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+53/-145)(198 lines)
branch: master
Compiler [Typechecker]: Third go at subtraction of function types.
Wednesday 14 April 2021
2021-04-14 18:14:41 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Updated type for aggregate_mapping().
Fixes several warnings.
2021-04-14 18:12:40 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Do not warn about invalid types in pass 1.
Fixes erroneous warnings due to casting to forward-referenced types.
2021-04-14 10:31:08 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Fix some NULL-derefs in low_index_type().
Tuesday 13 April 2021
2021-04-13 12:29:20 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref in push_unlimited_array_type().
Sunday 11 April 2021
2021-04-11 18:29:29 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: More __unknown__ fixes.
Saturday 10 April 2021
2021-04-10 15:23:10 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-0)(10 lines)
branch: master
Compiler [Typechecker]: Fixed PT_FLAG_CMP_VOID_IS_ZERO.
Friday 09 April 2021
2021-04-09 19:37:43 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-1)(6 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref in even_lower_and_pike_types().
2021-04-09 19:31:41 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+23/-1)(24 lines)
branch: master
Compiler [Typechecker]: Improved binop(PT_BINOP_{OR|MINUS}, ...)
Add special case to simplify the result for A - (B|C) and A | (B|C).
Previously
int - (int(1)|int(5))
resulted in
(int(..0)|int(2..)) & (int(..4)|int(6..))
now it instead results in
int(..0)|int(2..4)|int(6..)
which is what most users expect.
2021-04-09 10:23:57 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-4)(10 lines)
branch: master
Compiler [Typechecker]: Fix another NULL-deref in low_index_type().
Wednesday 07 April 2021
2021-04-07 09:04:35 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref in low_index_type().
Tuesday 06 April 2021
2021-04-06 09:04:29 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-7)(17 lines)
branch: master
Compiler [Typechecker]: Fixed some more NULL-derefs when rendering types.
Monday 05 April 2021
2021-04-05 13:33:35 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-8)(18 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref in describe_type().
Sunday 04 April 2021
2021-04-04 14:43:43 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-3)(7 lines)
branch: master
Compiler [Typechecker]: More use of __unknown__ in typeof().
Saturday 03 April 2021
2021-04-03 14:25:59 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Fix some NULL-derefs when rendering types.
Friday 02 April 2021
2021-04-02 14:44:46 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fixed NULL-deref on specific syntax error.
Fixes [LysLysKOM 24260957].
Thursday 01 April 2021
2021-04-01 17:08:52 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-18)(39 lines)
branch: master
Compiler [Typechecker]: Handle return of __unknown__ in match_types().
2021-04-01 09:24:56 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Fix NULL-deref in new_get_return_type().
Wednesday 31 March 2021
2021-03-31 13:38:06 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fixed NULL-deref in push_type_operator().
Tuesday 30 March 2021
2021-03-30 11:29:27 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+25/-0)(25 lines)
branch: master
Compiler [Typechecker]: Added some special cases to push_type().
Handle __unknown__ in combination with AND, OR and NOT directly.
Monday 29 March 2021
2021-03-29 15:35:38 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix warning about overloading classes with create().
Do not check the types for overloaded constants before the last pass.
Sunday 28 March 2021
2021-03-28 16:34:09 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+20/-12)(32 lines)
- pike/src/modules/_Stdio/buffer.cmod (+17/-0)(17 lines)
branch: master
Compiler [Typechecker]: Fixup the type for classes before end_first_pass().
Saturday 27 March 2021
2021-03-27 18:22:03 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Use __unknown__ instead of zero in some cases.
Tuesday 23 March 2021
2021-03-23 18:39:36 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Improved typechecking of assignments.
The checker is now informed that void values are converted into
UNDEFINED/zero on assignment.
Fixes several warnings.
Monday 22 March 2021
2021-03-22 16:12:22 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/builtin_functions.c (+9/-8)(17 lines)
- pike/src/constants.c (+2/-1)(3 lines)
- pike/src/docode.c (+3/-2)(5 lines)
- pike/src/language.yacc (+5/-4)(9 lines)
- pike/src/las.cmod (+18/-17)(35 lines)
- pike/src/operators.c (+12/-11)(23 lines)
- pike/src/pike_types.cmod (+15/-13)(28 lines)
- pike/src/pike_types.h (+4/-2)(6 lines)
- pike/src/program.c (+13/-11)(24 lines)
- pike/src/svalue.c (+6/-5)(11 lines)
- pike/src/treeopt.in (+29/-28)(57 lines)
branch: master
Total 218
Compiler [Typechecker]: Added flags to pike_types_le().
Sunday 21 March 2021
2021-03-21 17:13:14 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
- pike/src/pike_types.h (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_CMP_VOID_IS_ZERO.
Friday 19 March 2021
2021-03-19 18:16:16 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+68/-10)(78 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_CMP_INSEPARABLE.
Thursday 18 March 2021
2021-03-18 18:39:00 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added some internal doc.
Monday 15 March 2021
2021-03-15 21:34:47 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: More NULL-deref fixes.
Sunday 14 March 2021
2021-03-14 18:36:39 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-3)(13 lines)
branch: master
Compiler [Typechecker]: Fix some GC NULL-derefs.
Saturday 13 March 2021
2021-03-13 13:28:24 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-4)(9 lines)
branch: master
Compiler [Typechecker]: Improved handling of NULL in pike_types_le().
Friday 12 March 2021
2021-03-12 11:51:47 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-8)(15 lines)
branch: master
Compiler [Typechecker]: Minor DMALLOC clean-up.
Thursday 11 March 2021
2021-03-11 20:09:57 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-4)(15 lines)
branch: master
Compiler [Typechecker]: Fix indexing of __unknown__.
Wednesday 10 March 2021
2021-03-10 12:22:51 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Fix memory leak.
Monday 08 March 2021
2021-03-08 13:38:54 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo in diagnostic.
Friday 05 March 2021
2021-03-05 18:28:17 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Improved --with-dmalloc handling.
Wednesday 03 March 2021
2021-03-03 13:13:07 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/program.c (+5/-3)(8 lines)
branch: master
Compiler [Typechecker]: Fix argument order in diagnostic message.
Monday 01 March 2021
2021-03-01 16:42:34 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+37/-36)(73 lines)
branch: master
Compiler [Typechecker]: Second go at fixing some warnings.
las.cmod:fix_type_field() is called by optimize() from the leaves
going up. This means that the expression in eg `?` has typically
already been typechecked when it is received by fix_type_field().
Move the special case to mknode().
CAVEAT EMPTOR:
Calling fix_type_field() from mknode() in early compiler passes
may cause strange and unexpected failures. The special case type
adjustment is therefore only performed in the last compiler pass.
Fixes warnings from eg Getopt.
Sunday 28 February 2021
2021-02-28 15:49:56 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+37/-0)(37 lines)
branch: master
Compiler [Typechecker]: Reduce number of warnings.
Do not warn about the type not containing zero in the special case
if (string foo = expr) { xxx }
as foo will never be zero even though expr may very well be zero.
Thursday 25 February 2021
2021-02-25 17:51:33 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+36/-0)(36 lines)
branch: master
Compiler [Typechecker]: Survive NULL in push_finished_type_with_markers().
Monday 22 February 2021
2021-02-22 13:57:35 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+19/-16)(35 lines)
branch: master
Compiler [Typechecker]: Fix the initializer check for variables.
Sunday 21 February 2021
2021-02-21 16:20:41 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/language.yacc (+26/-0)(26 lines)
branch: master
Compiler [Typechecker]: Add implicit zero to types.
In 8.0 compat mode and not strict types zero is now implicitly
added to types.
Saturday 20 February 2021
2021-02-20 16:16:42 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+52/-0)(52 lines)
branch: master
Compiler [Typechecker]: Improved handling of NULL in or_pike_types().
Friday 19 February 2021
2021-02-19 16:49:51 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+10/-1)(11 lines)
branch: master
Compiler [Typechecker]: Improved result type for logical or.
Fixes some warnings.
Thursday 18 February 2021
2021-02-18 17:54:13 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fix some warning messages.
Wednesday 17 February 2021
2021-02-17 14:19:19 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-2)(8 lines)
branch: master
Compiler [Typechecker]: Fix result type for indexing of mappings.
Indexing of mappings may always return zero (or rather UNDEFINED).
Fixes compilation error from the optimizer when it optimizes a
mapping lookup to UNDEFINED, but zero is not in the value type.
Tuesday 16 February 2021
2021-02-16 12:13:41 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix soft casting of void.
Soft casting of eg string|void to string now gives the
expected string (rather than string|zero).
Fixes multiple strict types warnings.
Monday 15 February 2021
2021-02-15 14:21:34 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+52/-54)(106 lines)
branch: master
Compiler [Typechecker]: Fix handling of nullable-void with mixed.
2021-02-15 11:52:20 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Reduce strictness a bit more.
Thursday 11 February 2021
2021-02-11 14:18:31 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-1)(5 lines)
branch: master
Compiler [Typechecker] [GC]: Fix NULL-deref.
Wednesday 10 February 2021
2021-02-10 17:54:21 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+15/-0)(15 lines)
branch: master
Compiler [Typechecker]: Improved robustness against NULL.
Monday 08 February 2021
2021-02-08 16:20:35 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+5/-2)(7 lines)
branch: master
Compiler [Typechecker]: Fix lots of warnings about assigning zero.
Sunday 07 February 2021
2021-02-07 15:15:40 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+18/-0)(18 lines)
branch: master
Compiler [Typechecker]: Use type_binop() in check_node_type().
Saturday 06 February 2021
2021-02-06 14:43:10 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix checking of foreach().
Friday 05 February 2021
2021-02-05 12:56:14 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix handling of NULL in debug_free_type().
debug_free_type() attempted to dereference NULL when it looped
on certain types.
Thursday 04 February 2021
2021-02-04 13:37:26 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+13/-0)(13 lines)
branch: master
Compiler [Typechecker]: Fix zero - void and void - zero.
2021-02-04 13:09:06 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+13/-11)(24 lines)
branch: master
Compiler [Typechecker]: Use type_binop(PT_BINOP_MINUS) for pike_types_le().
Tuesday 02 February 2021
2021-02-02 13:56:15 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-1)(8 lines)
branch: master
Compiler [Typechecker]: push_binop(PT_BINOP_NONE) is now supported.
Monday 01 February 2021
2021-02-01 16:08:08 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo.
Saturday 30 January 2021
2021-01-30 15:40:56 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-4)(10 lines)
branch: master
Compiler [Typechecker]: More robustness against NULL types.
Wednesday 27 January 2021
2021-01-27 20:33:05 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+19/-13)(32 lines)
branch: master
Compiler [Typechecker]: Support NULL as argument type in T_MANY.
Tuesday 26 January 2021
2021-01-26 14:37:09 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Support push_type(PIKE_T_UNKNOWN).
This pushes a NULL on the type stack, and is intended to represent
the empty type.
Sunday 24 January 2021
2021-01-24 16:59:17 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.h (+7/-5)(12 lines)
branch: master
Compiler [Typechecker]: Fix warning about clobbered variable.
Saturday 23 January 2021
2021-01-23 17:34:30 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.h (+3/-5)(8 lines)
branch: master
Compiler [Typechecker]: Support NULL in copy_pike_type().
This also makes NULL supported in eg push_finished_type()
and various other places.
Friday 22 January 2021
2021-01-22 18:50:04 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fixed typo.
2021-01-22 18:44:57 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-1)(22 lines)
branch: master
Compiler [Typechecker]: Fix binops where one or both operands is NULL.
Thursday 21 January 2021
2021-01-21 15:42:28 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/svalue.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added symbol tUnknown.
Wednesday 20 January 2021
2021-01-20 17:59:47 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+244/-192)(436 lines)
branch: master
Compiler [Typechecker]: Restructure binary operations of function types.
Also fixes the result of PT_BINOP_AND on function types.
Monday 18 January 2021
2021-01-18 17:00:17 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-0)(11 lines)
branch: master
Compiler [Typechecker]: Improved handling of comparing void and zero.
Fixed some handling of T_MANY(T_VOID, ...) in combination
with T_MANY(T_ZERO, ...).
Sunday 17 January 2021
2021-01-17 16:16:27 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+48/-8)(56 lines)
branch: master
Compiler [Typechecker]: Fix comparison of void with mixed.
Thursday 14 January 2021
2021-01-14 20:48:47 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+10/-0)(10 lines)
branch: master
Compiler [Typechecker]: Use type_binop() in soft_cast().
Wednesday 13 January 2021
2021-01-13 19:02:58 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+15/-0)(15 lines)
- pike/src/pike_types.h (+7/-0)(7 lines)
branch: master
Compiler [Typechecker]: Added type_binop().
Sunday 10 January 2021
2021-01-10 18:25:05 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+23/-17)(40 lines)
branch: master
Compiler [Typechecker]: Some tuning of handling of zero and mixed.
Friday 08 January 2021
2021-01-08 17:00:18 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+38/-58)(96 lines)
branch: master
Compiler [Typechecker]: Unify binops for T_AND and T_OR.
Also fixes typo in lookup table.
Tuesday 05 January 2021
2021-01-05 14:58:32 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+48/-6)(54 lines)
branch: master
Compiler [Typechecker]: Improved handling of OR in low_type_binop().
Monday 04 January 2021
2021-01-04 19:36:22 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+66/-5)(71 lines)
branch: master
Compiler [Typechecker]: Improve tracing of low_type_binop().
Sunday 03 January 2021
2021-01-03 16:21:41 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+17/-4)(21 lines)
branch: master
Compiler [Typechecker]: Fixed more issues with subtraction of functions.
Function type subtraction now seems to be compatible with pike_types_le().
Saturday 02 January 2021
2021-01-02 14:57:08 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-1)(2 lines)
branch: master
Compiler [Typechecker]: Remove extraneous pop_stack_mark().
Friday 01 January 2021
2021-01-01 16:39:46 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+31/-0)(31 lines)
branch: master
Compiler [Typechecker]: Support PT_BINOP_XOR and PT_BINOP_XNOR.
Thursday 31 December 2020
2020-12-31 15:33:19 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-6)(10 lines)
branch: master
Compiler [Typechecker]: Remove use of duplicate type stack marks.
Use peek_stack_mark() instead of an extra type_stack_mark()
followed by pop_stack_mark(). Reduces type mark stack use
and code size slightly.
Wednesday 30 December 2020
2020-12-30 19:36:56 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+91/-7)(98 lines)
branch: master
Compiler [Typechecker]: Even more fixes for PT_BINOP_MINUS and functions.
Monday 28 December 2020
2020-12-28 19:21:01 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+53/-66)(119 lines)
branch: master
Compiler [Typechecker]: Improved handling of PT_BINOP_MINUS & functions.
Sunday 27 December 2020
2020-12-27 17:09:31 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+4/-1)(5 lines)
branch: master
Compiler [Typechecker]: Added some comments.
Saturday 26 December 2020
2020-12-26 14:26:50 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+16/-4)(20 lines)
branch: master
Compiler [Typechecker]: Use the NULLABLE flag in a few common cases.
Thursday 24 December 2020
2020-12-24 14:11:04 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+17/-0)(17 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_REMAP_NULLABLE.
This flag is analogous to void and PF_FLAG_REMAP_VOIDABLE, but
for zero.
Wednesday 23 December 2020
2020-12-23 18:34:07 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1/-3)(4 lines)
branch: master
Compiler [Typechecker]: Remove some obsolete code.
Missed this hunk in the previous commit.
2020-12-23 17:10:23 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+14/-1)(15 lines)
- pike/src/pike_types.h (+1/-1)(2 lines)
branch: master
Compiler [Typechecker]: Fix handling of T_ZERO in low_type_binop().
Eg zero - int(1bit) now returns Ø (empty set) as intended (and not zero).
Sunday 20 December 2020
2020-12-20 16:16:02 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-20)(32 lines)
branch: master
Compiler [Typechecker]: Clean up flag handling in low_type_binop().
Friday 18 December 2020
2020-12-18 17:00:29 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-2)(4 lines)
branch: master
Compiler [Typechecker]: Use alloc_pike_type() to allocate types.
Thursday 17 December 2020
2020-12-17 16:11:47 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Fixed leak in low_type_binop().
Wednesday 16 December 2020
2020-12-16 18:00:29 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-37)(46 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Clean up some of low_type_binop().
Sunday 13 December 2020
2020-12-13 17:26:13 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+26/-42)(68 lines)
branch: master
Compiler [Typechecker]: Improved handling of voidable arguments.
Monday 07 December 2020
2020-12-07 00:40:39 (2 years ago) by Tobias S. Josefowitz <tobij@tobij.de>
- pike/src/mapping.c (+3/-2)(5 lines)
- pike/src/pike_types.cmod (+1/-1)(2 lines)
branch: master
Compiler [Typechecker]: Compile fixes
Sunday 06 December 2020
2020-12-06 16:51:49 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+59/-0)(59 lines)
- pike/src/pike_types.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_REMAP_TRACE.
Attempt to avoid drowning in debug output by traceing only
relevant operations.
Saturday 05 December 2020
2020-12-05 16:53:10 (2 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-5)(14 lines)
branch: master
Compiler [Typechecker]: Improved checking of function types.
Tuesday 03 November 2020
2020-11-03 13:14:14 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+54/-1)(55 lines)
branch: master
Compiler [Typechecker]: Fixed type_binop() on disjunct types.
Monday 02 November 2020
2020-11-02 23:40:29 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.h (+4/-6)(10 lines)
branch: master
Compiler [Typechecker]: Added some missing symbolic names for binops.
This reduces warnings from the compiler when these obscure operations
actually are implemented.
Sunday 01 November 2020
2020-11-01 15:30:59 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-0)(7 lines)
branch: master
Compiler [Typechecker]: Fix some C-compiler warnings.
Friday 23 October 2020
2020-10-23 16:49:46 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Allow calling remap_markers() with NULL.
This simplifies the code that needs to call remap_markers().
Wednesday 21 October 2020
2020-10-21 18:45:52 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+49/-1)(50 lines)
branch: master
Compiler [Typechecker]: Added some more validation on PIKE_DEBUG.
pike_types_le() now validates low_type_binop(MINUS, ...)
against low_pike_types_le() when --with-rtldebug. It also
validates that the type and type mark stacks are invariant.
Tuesday 20 October 2020
2020-10-20 15:09:39 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+7/-1)(8 lines)
branch: master
Compiler [Typechecker]: Fix type stack mark leak.
low_type_binop() leaked type stack marks in some cases when handling
PT_BINOP_MINUS of function types.
Monday 19 October 2020
2020-10-19 21:47:38 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fixed eval mode in remap_markers().
When we are evaluating, we need to recurse even if we're not
doing any remapping.
Sunday 18 October 2020
2020-10-18 16:47:25 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+40/-3)(43 lines)
branch: master
Compiler [Typechecker]: Added some validation on PIKE_DEBUG.
match_types() now validates low_type_binop(AND, ...)
against low_match_types() when --with-rtldebug.
Saturday 17 October 2020
2020-10-17 16:20:27 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+19/-5)(24 lines)
branch: master
Compiler [Typechecker]: Fixed low_type_binop() handling of int.
Friday 16 October 2020
2020-10-16 15:52:19 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-4)(16 lines)
branch: master
Compiler [Typechecker]: Fixed infinite loop in low_type_binop().
There was a break statement that was intended to break a loop,
but instead broke a switch. Replaced with a goto.
Also adds a missing break.
Thursday 15 October 2020
2020-10-15 12:50:48 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+20/-2)(22 lines)
branch: master
Compiler [Typechecker]: Added some implementation notes.
Wednesday 14 October 2020
2020-10-14 17:18:05 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+85/-49)(134 lines)
branch: master
Compiler [Typechecker]: Fix some more cases in low_type_binop().
It should now handle the same cases as low_intersect_types() and
low_subtract_types().
Tuesday 13 October 2020
2020-10-13 13:06:22 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-45)(56 lines)
branch: master
Compiler [Typechecker]: Use push_binop().
Monday 12 October 2020
2020-10-12 09:42:33 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+8/-0)(8 lines)
branch: master
Compiler [Typechecker]: Added low_pop_type().
This function pops a type from the type stack without messing
with the type mark stack.
Sunday 11 October 2020
2020-10-11 16:02:14 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+85/-0)(85 lines)
branch: master
Compiler [Typechecker]: Added push{,_reverse}_binop()
This is a helper function for low_type_binop().
Saturday 10 October 2020
2020-10-10 16:37:02 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1008/-0)(1008 lines)
branch: master
Compiler [Typechecker]: First implementation of low_type_binop().
This function unifies low_intersect_types() and low_subtract_types(),
and is intended in the future to also support union (aka or) of types.
Thursday 08 October 2020
2020-10-08 21:33:49 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-0)(3 lines)
branch: master
Compiler [Typechecker]: Added some FIXMEs.
Wednesday 07 October 2020
2020-10-07 18:15:51 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.h (+32/-0)(32 lines)
branch: master
Compiler [Typechecker]: Prepare for unified type binop api.
Tuesday 06 October 2020
2020-10-06 17:33:52 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+38/-34)(72 lines)
branch: master
Compiler [Typechecker]: Restructured intersect_types() somewhat.
Monday 05 October 2020
2020-10-05 19:20:11 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+158/-43)(201 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Adjusted API for remap_markers().
remap_markers() can now be used to evaluate markers.
Sunday 04 October 2020
2020-10-04 16:33:39 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fixed typos in DeMorgan special case.
Saturday 03 October 2020
2020-10-03 14:24:59 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+75/-16)(91 lines)
branch: master
Compiler [Typechecker]: Attempt to reduce amount of type expansion.
Friday 02 October 2020
2020-10-02 15:47:16 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+18/-1)(19 lines)
branch: master
Compiler [Typechecker]: Short-circuit double type inversions.
Thursday 01 October 2020
2020-10-01 13:19:08 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+12/-5)(17 lines)
branch: master
Compiler [Typechecker]: Fixed multiple bugs in subtract_types().
Wednesday 30 September 2020
2020-09-30 11:28:24 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-3)(9 lines)
branch: master
Compiler [Typechecker]: Some type rendering adjustments.
Tuesday 29 September 2020
2020-09-29 13:01:47 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+18/-11)(29 lines)
branch: master
Compiler [Typechecker]: Fixed some bugs in remap_marker() et al.
The allocation and lookup of remapped markers now
seems to work as intended.
Monday 28 September 2020
2020-09-28 13:25:32 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+22/-15)(37 lines)
branch: master
Compiler [Typechecker]: Fixed some infinite recursion.
Sunday 27 September 2020
2020-09-27 14:17:26 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+1314/-0)(1314 lines)
- pike/src/pike_types.h (+19/-0)(19 lines)
branch: master
Compiler [Typechecker]: Added {intersect,subtract}_types().
Saturday 26 September 2020
2020-09-26 14:35:31 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-14)(35 lines)
- pike/src/pike_types.h (+10/-6)(16 lines)
branch: master
Compiler [Typechecker]: Fixed some issues with the marker remapper.
* The flags are now in an enum.
* The flag constants have been renamed slightly.
* The PT_FLAG_REMAP_SWAP_MARKERS flag should now work as intended.
* free_marker() now also receives the flags. This is needed
to avoid issues with PT_FLAG_REMAP_SWAP_MARKERS.
Friday 25 September 2020
2020-09-25 19:09:38 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-0)(5 lines)
- pike/src/pike_types.h (+2/-0)(2 lines)
branch: master
Compiler [Typechecker]: Added void_function_type_string.
Thursday 24 September 2020
2020-09-24 16:42:56 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-0)(21 lines)
- pike/src/pike_types.h (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Added PT_FLAG_BOTH_MARKERS{,_AND,_OR,_MASK}.
This causes remap_markers() to use both marker sets and emit an
T_AND or T_OR type when a marker is found in both.
Wednesday 23 September 2020
2020-09-23 12:47:40 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fixed even more typos.
Tuesday 22 September 2020
2020-09-22 14:52:30 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Some more typo fixes.
2020-09-22 13:19:58 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-5)(11 lines)
branch: master
Compiler [Typechecker]: Fixed some typos.
Monday 21 September 2020
2020-09-21 18:58:30 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+27/-4)(31 lines)
- pike/src/pike_types.h (+6/-0)(6 lines)
branch: master
Compiler [Typechecker]: Added alloc_remap_marker().
Changed the remap_marker API slightly. remap_marker() is now strictly
used to lookup the marker mapping, and alloc_remap_marker() to
allocate a new marker in the remapped set.
Also adds and defines the flag PT_FLAG_SWAP_MARKERS.
Sunday 20 September 2020
2020-09-20 15:05:33 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+120/-0)(120 lines)
branch: master
Compiler [Typechecker]: Added {push_,}remap_markers().
Friday 18 September 2020
2020-09-18 19:23:31 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+40/-0)(40 lines)
branch: master
Compiler [Typechecker]: Preparations for remapping type markers.
Wednesday 16 September 2020
2020-09-16 16:02:09 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+35/-33)(68 lines)
branch: master
Compiler [Typechecker]: Use PIKE_T_MASK.
Monday 14 September 2020
2020-09-14 18:40:08 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-38)(43 lines)
branch: master
Compiler [Typechecker]: Simplify handling of transitive types somewhat.
Saturday 12 September 2020
2020-09-12 14:36:46 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-0)(6 lines)
branch: master
Compiler [Typechecker]: Support soft casting of operators to function.
Friday 11 September 2020
2020-09-11 17:14:28 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-2)(5 lines)
branch: master
Compiler [Typechecker]: Fixed issue with expanding of transient types.
Thursday 10 September 2020
2020-09-10 15:49:52 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-2)(8 lines)
branch: master
Compiler [Typechecker]: Fixed issue with soft casting of complex functions.
Wednesday 09 September 2020
2020-09-09 16:43:50 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+13/-6)(19 lines)
branch: master
Compiler [Typechecker]: Enable TYPE_STACK_DEBUG with l_flag.
Monday 07 September 2020
2020-09-07 23:05:33 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+9/-20)(29 lines)
branch: master
Compiler [Typechecker]: Fix soft casting of complex function types.
Monday 31 August 2020
2020-08-31 11:00:07 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+40/-15)(55 lines)
branch: master
Compiler [Typechecker]: Fix calling of transitive types.
Sunday 30 August 2020
2020-08-30 13:37:36 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+22/-9)(31 lines)
branch: master
Compiler [Typechecker]: Port type matching changes to pike_types_le().
* Protect against infinite recursion.
* Perform proper checking of transitive types (via expand_transitive()).
Saturday 29 August 2020
2020-08-29 15:54:35 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+132/-0)(132 lines)
branch: master
Compiler [Typechecker]: Improve matching against transitive types.
Friday 28 August 2020
2020-08-28 19:27:46 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-1)(7 lines)
branch: master
Compiler [Typechecker]: Fixed some TYPE_STACK_DEBUG() calls.
Thursday 27 August 2020
2020-08-27 17:17:26 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fix typo in rendering of complex function types.
Monday 24 August 2020
2020-08-24 11:52:18 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+13/-0)(13 lines)
branch: master
Compiler [Typechecker]: Improved handling of union (aka or) types.
Now that low_match_types() adds a reference to its result, we can
return the matching types for both parts of a union type.
Friday 21 August 2020
2020-08-21 15:33:21 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+133/-52)(185 lines)
branch: master
Compiler [Typechecker]: Changed calling convention for low_match_types().
low_match_types() now adds a reference to the returned type. This fixes
potential issues with matching PIKE_T_OPERATOR and similar, where it
could return a freed type.
Thursday 20 August 2020
2020-08-20 10:51:30 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+11/-10)(21 lines)
branch: master
Compiler [Typechecker]: Use match_types() where possible.
Preparation for having low_match_types() add a reference to
its return value.
Wednesday 19 August 2020
2020-08-19 17:38:38 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+2/-1)(3 lines)
branch: master
Compiler [Typechecker]: Fixed invalid deref in debug code.
2020-08-19 14:47:12 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+21/-9)(30 lines)
branch: master
Compiler [Typechecker]: Protect against infinite recursion.
With the addition of partially expanded types low_match_types()
is at risk of infinite recursion.
Monday 17 August 2020
2020-08-17 16:08:46 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+189/-0)(189 lines)
- pike/src/svalue.h (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Added PIKE_T_TRANSITIVE.
This is a helper type to construct the type for transitive left-
recursive functions (like eg many operator efuns).
Saturday 15 August 2020
2020-08-15 12:58:52 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+27/-6)(33 lines)
branch: master
Compiler [Typechecker]: Fixed issue where markers were not expanded.
Fixes multiple erroneous warnings. Eg
Pike v8.1 release 13 running Hilfe v3.5 (Incremental Pike Frontend)
> array a = ({ `+, `-, `/ });
Compiler Warning: 1: Expected object implementing lfun `+.
Compiler Warning: 1: Got : 2.
Also adjusts the warning message somewhat (for when it is relevant) to
Compiler Warning: 1: Expected object implementing lfun::`+().
Monday 03 August 2020
2020-08-03 13:10:25 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+25/-15)(40 lines)
branch: master
Compiler [Typechecker]: Fixed bug in soft cast.
Soft casting of complex function types (ie not consisting only
of a chain of T_FUNCTION and T_MANY nodes) was broken.
Potential fix for a SIGSEGV in the testsuite.
Sunday 19 July 2020
2020-07-19 15:28:33 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+172/-171)(343 lines)
branch: master
Compiler [Typechecker]: Fixed evaluation order in pike_types_le().
Fixes several obscure issues.
Saturday 18 July 2020
2020-07-18 12:05:24 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+143/-0)(143 lines)
- pike/src/svalue.h (+4/-0)(4 lines)
branch: master
Compiler [Typechecker]: Added operator find_lfun.
This operator returns the type for the specified lfun in
the first argument. Typical intended use is for type-
checking of operators.
Fixes some of#10048 .
Friday 17 July 2020
2020-07-17 18:02:02 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+359/-32)(391 lines)
- pike/src/pike_types.h (+3/-0)(3 lines)
- pike/src/svalue.h (+12/-0)(12 lines)
branch: master
Compiler [Typechecker]: Added PIKE_T_OPERATOR.
Added generic support for 127 + 127 type operator functions.
This reduces the amount of special cases needed to implement
type operators (like eg find_lfun() or zzap_return()).
Needed for#10048 .
Wednesday 15 July 2020
2020-07-15 12:06:50 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+5/-0)(5 lines)
branch: master
Compiler [Typechecker]: Or-ing a type and its inverse yields mixed.
Monday 13 July 2020
2020-07-13 09:09:46 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/encode.c (+23/-0)(23 lines)
- pike/src/pike_types.cmod (+72/-23)(95 lines)
- pike/src/svalue.h (+9/-1)(10 lines)
branch: master
Compiler [Typechecker]: Support more complex function types.
Support type nodes other than T_FUNCTION and T_MANY in the cdr
of T_FUNCTION nodes.
Needed for#10048 .
Tuesday 04 February 2020
2020-02-04 13:33:05 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+6/-1)(7 lines)
branch: master
Compiler [Typechecker]: Added DWIM kludge.
Thursday 23 January 2020
2020-01-23 17:32:18 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/las.cmod (+4/-10)(14 lines)
- pike/src/pike_types.cmod (+24/-6)(30 lines)
branch: master
Compiler [Typechecker]: Improved type checking.
Fixed issue where constant expressions after evaluation sometimes
got a partially weaker type. Eg: The expression
({ 0, 1, 2, 3 })
gets the type array(int(4bit)) from evaluating the type, but
the type array(4: int) from generating a type from the value.
The code generator now adds a soft-cast to the original type,
causing the resulting type to be array(4: int(4bit)).
Fixes testsuite failures for undumped pikes from eg SSL.Context.
Tuesday 21 January 2020
2020-01-21 12:43:21 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+6/-1)(7 lines)
branch: master
Compiler [Typechecker]: Added special case for empty strings and arrays.
Sunday 19 January 2020
2020-01-19 20:47:07 (3 years ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>
- pike/src/pike_types.cmod (+3/-1)(4 lines)
branch: master
Compiler [Typechecker]: Type-check the length field.
Bugs mentioned
![]() | CLOSED | Operator assignment and strict_types | ||
![]() | CLOSED | Extend type-checker to use lfun types when checking efun calls with objects. | ||
![]() | CLOSED | Type mark stack underflow | ||
![]() | CLOSED | aggregate_mapping() type checker performance issue | ||
![]() | CLOSED | Compiler C Stack overflow in type checker. |