Recent

Author Topic: FPC 3.0.0 "Pestering Peacock"  (Read 71509 times)

georgebou

  • New Member
  • *
  • Posts: 45
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #30 on: November 30, 2015, 10:10:30 pm »
Good job guys.

Thank you.

Thaddy

  • Hero Member
  • *****
  • Posts: 14157
  • Probably until I exterminate Putin.
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #31 on: December 01, 2015, 04:14:56 pm »
My only DWIM compilers are pascal based, Marco. Btw what is social? :o
Specialize a type, not a var.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11351
  • FPC developer.
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #32 on: December 01, 2015, 05:21:55 pm »
Btw what is social? :o

A word that is nowadays a higher score on buzzword bingo.

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #33 on: December 01, 2015, 05:59:35 pm »
Btw what is social? :o

A word that is nowadays a higher score on buzzword bingo.
Speaking of social! marcov congratulations on 4000th post!

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11351
  • FPC developer.
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #34 on: December 01, 2015, 06:10:38 pm »
Speaking of social! marcov congratulations on 4000th post!

Thanks  : ;)

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #35 on: January 12, 2016, 02:28:03 pm »
FPC 3.0.0

****************************************************************************
* Features
****************************************************************************

- can call external C code




Is it new feature of FPC 3.0.0 ?
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11351
  • FPC developer.
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #36 on: January 12, 2016, 02:46:25 pm »

- can call external C code


Is it new feature of FPC 3.0.0 ?

No, just like Borland Pascal (and Delphi) compatiiblity a few lines higher isn't new either. IOW that is general description of the project, not whatsnew

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: FPC 3.0.0 "Pestering Peacock"
« Reply #37 on: January 12, 2016, 02:59:24 pm »

- can call external C code


Is it new feature of FPC 3.0.0 ?

No, just like Borland Pascal (and Delphi) compatiiblity a few lines higher isn't new either. IOW that is general description of the project, not whatsnew


Oh ! I was wrong, I think it was an implementation of  "future" FPC feature[1], But, it is another one[2].
Quote
Planned for later versions
    • Linking with C++ code

    [1] http://www.freepascal.org/future.var
    [2] ftp://ftp.freepascal.org/fpc/docs-pdf/CinFreePascal.pdf
    When you were logged in, you can see attachments.
    Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

    BeniBela

    • Hero Member
    • *****
    • Posts: 905
      • homepage
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #38 on: January 27, 2016, 10:55:19 pm »
    Now I tried to update

    Quote
    Makefile:2872: *** The only supported starting compiler version is 3.0.0. You are trying to build with 2.6.2..  Stop.

    Awesome

    So you can only can get 3.x, if you already have 3.0  >:D

    Laksen

    • Hero Member
    • *****
    • Posts: 724
      • J-Software
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #39 on: January 27, 2016, 11:34:38 pm »
    No, trunk can only be built with 3.0.0.
    3.0.0 can be built by 2.6.4.
    2.6.4 can be built by 2.6.2

    Leledumbo

    • Hero Member
    • *****
    • Posts: 8744
    • Programming + Glam Metal + Tae Kwon Do = Me
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #40 on: January 28, 2016, 11:14:22 am »
    Now I tried to update

    Quote
    Makefile:2872: *** The only supported starting compiler version is 3.0.0. You are trying to build with 2.6.2..  Stop.

    Awesome

    So you can only can get 3.x, if you already have 3.0  >:D
    The golden rule since a long time ago (but more forced when that Makefile message is introduced) is: previous latest/current stable is the only one supported to build current stable, current stable is the only one supported to build trunk.

    Thaddy

    • Hero Member
    • *****
    • Posts: 14157
    • Probably until I exterminate Putin.
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #41 on: January 28, 2016, 11:50:39 am »
    So you can only can get 3.x, if you already have 3.0  >:D

    Yes. And there are many very good reasons for that, most important is:

    The developers want to make use of the new features in the last major stable release, i.e. 3.0.0 to further develop trunk.

    e.g.: by now the Default() intrinsic is used in the trunk sourcecode. FPC 2.6.4 (or in your case worse:2.6.2) can't handle that intrinsic because it doesn't know what it is... See the point?

    So bootstrapping trunk is and always has been enforced to use the latest stable release.
    Which is as it stands 3.0.0.

    BTW: the latest fpcup builds you an intermediate 3.0.0 compiler from 2.6.2 to bootstrap trunk.
    « Last Edit: January 28, 2016, 12:04:05 pm by Thaddy »
    Specialize a type, not a var.

    marcov

    • Administrator
    • Hero Member
    • *
    • Posts: 11351
    • FPC developer.
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #42 on: January 28, 2016, 12:54:39 pm »

    BTW: the latest fpcup builds you an intermediate 3.0.0 compiler from 2.6.2 to bootstrap trunk.

    Undocumented and unsupported behaviour. The last release before 3.0.0 is 2.6.4 not 2.6.2

    Thaddy

    • Hero Member
    • *****
    • Posts: 14157
    • Probably until I exterminate Putin.
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #43 on: January 28, 2016, 01:10:47 pm »
    Yes. It is.

    But 2.6.4 was a bug fix release and didn't contain new (documented) features.

    I didn't think it was appropriate to ask to back-port the correct behavior to 3.0.0.
    You are of course free to back-port it ;) I can only ask... and did ask and submitted a patch  for trunk that got accepted ;) So, basically it was my fault  O:-)
    « Last Edit: January 28, 2016, 01:20:01 pm by Thaddy »
    Specialize a type, not a var.

    molly

    • Hero Member
    • *****
    • Posts: 2330
    Re: FPC 3.0.0 "Pestering Peacock"
    « Reply #44 on: March 01, 2016, 06:09:49 pm »
    I ran into something weird.

    I have FPC 3.0.0 installed (windows) from official distributed installer, and it came with examples inside examples directory. All the numlib examples seem to have their code duplicated inside the same file.

    I'm not sure it's something that is amiss with my particular test setup but perhaps someone else could check/verify ?

    As for an example detgpbte.pas:
    Code: [Select]
    program detgpbte;

    {

    1: 260
    2: 64
    3:

    }
    uses
      typ,
      iom,
      det;

    const
      pmin = -10;
      pmax = 100;
    var
      l, i, ind, rw, n, k, term, p, vb, nvb: ArbInt;
      f: ArbFloat;
      a: array[pmin..pmax] of ArbFloat;
    begin
      iom.npos := 1000;        {max. width of output to 1000, since this is piped}
      Assign(input, ParamStr(1));
      reset(input);
      Assign(output, ParamStr(2));
      rewrite(output);
      Write(' program results detgpbte');
      case sizeof(ArbFloat) of
        4: writeln('(single)');
        6: writeln('(real)');
        8: writeln('(double)');
        10: writeln('(extended)');
      end;
      Read(nvb);
      writeln;
      writeln(' number of examples:', nvb: 3);
      for vb := 1 to nvb do
      begin
        writeln;
        writeln('example', vb: 2);
        Read(p, n, l);
        ind := p;
        writeln;
        writeln('  n=', n: 1, '  l=', l: 1);
        for i := 1 to n do
        begin
          if i <= l then
            rw := i
          else
            rw := l + 1;
          iomrev(input, a[ind], rw);
          Inc(ind, rw);
        end;
        detgpb(n, l, a[p], f, k, term);
        ind := p;
        writeln;
        writeln(' A (left-under) =');
        for i := 1 to n do
        begin
          if i <= l then
            rw := i
          else
            rw := l + 1;
          if i > l + 1 then
            Write('': (i - l - 1) * (numdig + 2));
          iomwrv(output, a[ind], rw, numdig);
          Inc(ind, rw);
        end;
        writeln;
        writeln('term=', term: 2);
        writeln;
        if term = 3 then
          writeln(' wrong input')
        else
        if term = 2 then
          writeln(' matrix not pos-def.')
        else
        begin
          Write(' determinant of A =', f: numdig);
          {      if k <> 0 then } Write(' * 8**', k: 3);
          writeln;
        end; {term=1}
        writeln('---------------------------------------------');
      end; {vb}
      Close(input);
      Close(output);
    end.
    program detgpbte;

    {

    1: 260
    2: 64
    3:

    }
    uses
      typ,
      iom,
      det;

    const
      pmin = -10;
      pmax = 100;
    var
      l, i, ind, rw, n, k, term, p, vb, nvb: ArbInt;
      f: ArbFloat;
      a: array[pmin..pmax] of ArbFloat;
    begin
      iom.npos := 1000;        {max. width of output to 1000, since this is piped}
      Assign(input, ParamStr(1));
      reset(input);
      Assign(output, ParamStr(2));
      rewrite(output);
      Write(' program results detgpbte');
      case sizeof(ArbFloat) of
        4: writeln('(single)');
        6: writeln('(real)');
        8: writeln('(double)');
        10: writeln('(extended)');
      end;
      Read(nvb);
      writeln;
      writeln(' number of examples:', nvb: 3);
      for vb := 1 to nvb do
      begin
        writeln;
        writeln('example', vb: 2);
        Read(p, n, l);
        ind := p;
        writeln;
        writeln('  n=', n: 1, '  l=', l: 1);
        for i := 1 to n do
        begin
          if i <= l then
            rw := i
          else
            rw := l + 1;
          iomrev(input, a[ind], rw);
          Inc(ind, rw);
        end;
        detgpb(n, l, a[p], f, k, term);
        ind := p;
        writeln;
        writeln(' A (left-under) =');
        for i := 1 to n do
        begin
          if i <= l then
            rw := i
          else
            rw := l + 1;
          if i > l + 1 then
            Write('': (i - l - 1) * (numdig + 2));
          iomwrv(output, a[ind], rw, numdig);
          Inc(ind, rw);
        end;
        writeln;
        writeln('term=', term: 2);
        writeln;
        if term = 3 then
          writeln(' wrong input')
        else
        if term = 2 then
          writeln(' matrix not pos-def.')
        else
        begin
          Write(' determinant of A =', f: numdig);
          {      if k <> 0 then } Write(' * 8**', k: 3);
          writeln;
        end; {term=1}
        writeln('---------------------------------------------');
      end; {vb}
      Close(input);
      Close(output);
    end.

    Thx in advance.

     

    TinyPortal © 2005-2018