[nem-pl] bugreport

Piotr Wysocki wysek at slc.black.pl
Thu May 20 16:35:25 CEST 2004


Hej,
Na poczatku przepraszam, ze nie uzywam tego Mantisa, ale nie mam takiej
mozliwosci (brak normalnej przegladarki). Poza tym i tak tych Mantisow
nie umiem obslugiwac...
Mam problem z taka funkcja:
exc (n : int) : bool
{
   def loop (x : int, sum : int) : int {
      if (x == n) sum
      else loop (x+1, sum + (if (n % x == 0) x else 0))
   }
   loop (1, 0) == n
}
Nie wiem, czy ja dobrze pojmuje idee jezyka... w kazdym razie kompilator
zamiast wywalic mi blad, ze np. jestem glupi, bo nie znam jezyka, to wywala
jakis shit, ktory zalaczam.
Funkcja jest zdefiniowana w module Hello z funkcja Main () : void, ktora nic
nie robi, takze problem jest z funkcja.
Dla jasnosci kod funkcji exc w ocamlu wyglada tak:
let exc n =
  let loop x sum =
    if x == n then sum
    else loop (x+1) (sum + (if n mod x == 0 then x else 0))
  in loop 1 0 == n;;

-- 
Piotr Wysocki :: slc.black.pl
-------------- next part --------------

internal compiler error: got some unknown exception System.NotImplementedException: The requested feature is not yet implemented
in <0x0002a> System.Char:ToLower (char,System.Globalization.CultureInfo)
in <0x00519> Nemerle.Compiler.Lexer:get_number (char)
in <0x000dd> Nemerle.Compiler.Lexer:do_get_token (char)
in <0x00187> Nemerle.Compiler.Lexer:get_token ()
in <0x00011> Nemerle.Compiler.Lexer:Nemerle.Compiler.ILexer.get_token ()
in <0x00039> ._N_lm_get_token_18449:get_token ()
in <0x00123> Nemerle.Compiler.Parser:get_token ()
in <0x00011> Nemerle.Compiler.Parser:peek_token ()
in <0x00010> Nemerle.Compiler.Parser:location_here ()
in <0x00037> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x003de> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x00053> Nemerle.Compiler.Parser:parse_call_parm ()
in <0x0000a> .parse_call_parm_2577:apply ()
in <0x0002e> Nemerle.Compiler.Parser:operator_separated_list (string,Nemerle.Internal.Func0)
in <0x0059e> Nemerle.Compiler.Parser:parse_prim_expr ()
in <0x009f6> Nemerle.Compiler.Parser:parse_unary_expr ()
in <0x02c3a> Nemerle.Compiler.Parser:parse_semiclosed_expr ()
in <0x000f0> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x006ad> Nemerle.Compiler.Parser:parse_wrt_rule (Nemerle.Core.list)
in <0x00029> ._N_lm__N_l19519_19521:_N_l19519 ()
in <0x002e2> Nemerle.Compiler.Parser:parse_semiclosed_expr ()
in <0x000f0> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x00020> Nemerle.Compiler.Parser:parse_expr_sequence ()
in <0x0112c> Nemerle.Compiler.Parser:parse_block (Nemerle.Core.list)
in <0x021e1> Nemerle.Compiler.Parser:parse_semiclosed_expr ()
in <0x000f0> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x00020> Nemerle.Compiler.Parser:parse_expr_sequence ()
in <0x0112c> Nemerle.Compiler.Parser:parse_block (Nemerle.Core.list)
in <0x00e42> Nemerle.Compiler.Parser:parse_method (Nemerle.Compiler.Location,Nemerle.Core.list)
in <0x0031c> Nemerle.Compiler.Parser:parse_type_member ()
in <0x0000a> .parse_type_member_2622:apply ()
in <0x001df> Nemerle.Compiler.Parser:collect_list (Nemerle.Internal.Func0)
in <0x00021> Nemerle.Compiler.Parser:collect_braced_list (Nemerle.Internal.Func0)
in <0x00024> ._N_lm_parse_members_19336:parse_members ()
in <0x00be3> ._N_lm__N_l19341_19343:_N_l19341 ()
in <0x000b6> Nemerle.Compiler.Util:locate (Nemerle.Compiler.Location,Nemerle.Internal.Func0)
in <0x00044> Nemerle.Compiler.Parser:locate (Nemerle.Internal.Func0)
in <0x000fc> Nemerle.Compiler.Parser:parse_type_decl ()
in <0x0063c> ._N_lm__N_l19396_19398:_N_l19396 ()
in <0x000b6> Nemerle.Compiler.Util:locate (Nemerle.Compiler.Location,Nemerle.Internal.Func0)
in <0x00044> Nemerle.Compiler.Parser:locate (Nemerle.Internal.Func0)
in <0x00064> Nemerle.Compiler.Parser:parse_topdecl ()
in <0x0000a> .parse_topdecl_2626:apply ()
in <0x001df> Nemerle.Compiler.Parser:collect_list (Nemerle.Internal.Func0)
in <0x0007a> Nemerle.Compiler.Parser:parse (Nemerle.Compiler.Lexer)
in <0x00059> ._N_lm__N_l359_362:_N_l359 (object)
in <0x00206> Nemerle.Collections.List:Map (Nemerle.Core.list,Nemerle.Internal.Func1)
in <0x02bfd> Nemerle.Compiler.MainClass:do_main ()
in <0x0003e> Nemerle.Compiler.MainClass:Main ()

in <0x0002a> System.Char:ToLower (char,System.Globalization.CultureInfo)
in <0x00519> Nemerle.Compiler.Lexer:get_number (char)
in <0x000dd> Nemerle.Compiler.Lexer:do_get_token (char)
in <0x00187> Nemerle.Compiler.Lexer:get_token ()
in <0x00011> Nemerle.Compiler.Lexer:Nemerle.Compiler.ILexer.get_token ()
in <0x00039> ._N_lm_get_token_18449:get_token ()
in <0x00123> Nemerle.Compiler.Parser:get_token ()
in <0x00011> Nemerle.Compiler.Parser:peek_token ()
in <0x00010> Nemerle.Compiler.Parser:location_here ()
in <0x00037> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x003de> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x00053> Nemerle.Compiler.Parser:parse_call_parm ()
in <0x0000a> .parse_call_parm_2577:apply ()
in <0x0002e> Nemerle.Compiler.Parser:operator_separated_list (string,Nemerle.Internal.Func0)
in <0x0059e> Nemerle.Compiler.Parser:parse_prim_expr ()
in <0x009f6> Nemerle.Compiler.Parser:parse_unary_expr ()
in <0x02c3a> Nemerle.Compiler.Parser:parse_semiclosed_expr ()
in <0x000f0> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x006ad> Nemerle.Compiler.Parser:parse_wrt_rule (Nemerle.Core.list)
in <0x00029> ._N_lm__N_l19519_19521:_N_l19519 ()
in <0x002e2> Nemerle.Compiler.Parser:parse_semiclosed_expr ()
in <0x000f0> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x00020> Nemerle.Compiler.Parser:parse_expr_sequence ()
in <0x0112c> Nemerle.Compiler.Parser:parse_block (Nemerle.Core.list)
in <0x021e1> Nemerle.Compiler.Parser:parse_semiclosed_expr ()
in <0x000f0> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x0007c> ._N_lm_loop_right_19006:loop_right ()
in <0x00138> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x001b4> ._N_lm_parse_pri_18993:parse_pri (object)
in <0x000b6> Nemerle.Compiler.Parser:parse_expr ()
in <0x00020> Nemerle.Compiler.Parser:parse_expr_sequence ()
in <0x0112c> Nemerle.Compiler.Parser:parse_block (Nemerle.Core.list)
in <0x00e42> Nemerle.Compiler.Parser:parse_method (Nemerle.Compiler.Location,Nemerle.Core.list)
in <0x0031c> Nemerle.Compiler.Parser:parse_type_member ()
in <0x0000a> .parse_type_member_2622:apply ()
in <0x001df> Nemerle.Compiler.Parser:collect_list (Nemerle.Internal.Func0)
in <0x00021> Nemerle.Compiler.Parser:collect_braced_list (Nemerle.Internal.Func0)
in <0x00024> ._N_lm_parse_members_19336:parse_members ()
in <0x00be3> ._N_lm__N_l19341_19343:_N_l19341 ()
in <0x000b6> Nemerle.Compiler.Util:locate (Nemerle.Compiler.Location,Nemerle.Internal.Func0)
in <0x00044> Nemerle.Compiler.Parser:locate (Nemerle.Internal.Func0)
in <0x000fc> Nemerle.Compiler.Parser:parse_type_decl ()
in <0x0063c> ._N_lm__N_l19396_19398:_N_l19396 ()
in <0x000b6> Nemerle.Compiler.Util:locate (Nemerle.Compiler.Location,Nemerle.Internal.Func0)
in <0x00044> Nemerle.Compiler.Parser:locate (Nemerle.Internal.Func0)
in <0x00064> Nemerle.Compiler.Parser:parse_topdecl ()
in <0x0000a> .parse_topdecl_2626:apply ()
in <0x001df> Nemerle.Compiler.Parser:collect_list (Nemerle.Internal.Func0)
in <0x0007a> Nemerle.Compiler.Parser:parse (Nemerle.Compiler.Lexer)
in <0x00059> ._N_lm__N_l359_362:_N_l359 (object)
in <0x00206> Nemerle.Collections.List:Map (Nemerle.Core.list,Nemerle.Internal.Func1)
in <0x02bfd> Nemerle.Compiler.MainClass:do_main ()
in <0x0003e> Nemerle.Compiler.MainClass:Main ()

-------------- next part --------------
module Hello
{
  exc (n : int) : bool
  {
    def loop (x : int, sum : int)
    {
      if (x == n)
        sum
      else loop (x+1, sum + (if (n % x == 0) x else 0))
    };
    loop (1, 0) == n
  }
  /*
  exc2 (n : int) : bool
  {
    mutable sum <- 0;
    for (mutable i <- 1; i != n; i <- i + 1) {
      when (n % i == 0) sum <- sum + i;
    };
    sum == n
  }
  */
  Main () : void
  {
    System.Console.WriteLine ("Hello cruel world!")
  }
}



More information about the devel-pl mailing list