Recent

Author Topic: FNX (big integers)  (Read 4574 times)

mjm

  • New member
  • *
  • Posts: 7
FNX (big integers)
« on: March 17, 2020, 04:39:18 pm »
Hello,

The FNX library can be downloaded at
https://www.ellipsa.eu/public/fnx/fnx.html

Though it is still an alpha version, there are already many units allowing to work with big primes, quadratic integers, elliptic curves, etc. All seems to work as it should with 64-bit Linux. The Pascal version should also work with Windows (there is almost no asm code for Windows, since I only have Linux I cannot check it). What is absolutely necessary is a 64-bit 3.0.0+ Free Pascal compiler.

Most objects, like TBigInt, are immutable. The programs would be faster if the objects were mutable but not so much. The big advantage is the ease of use: to declare, to initialize and to use (no need to create nor to destroy).

Currently, there are two Lazarus demo projects: fnx.Demo.BigInts and fnx.Demo.MultiThreadApp

Have fun,
mjm

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11458
  • FPC developer.
Re: FNX (big integers)
« Reply #1 on: March 17, 2020, 05:53:07 pm »
Hmm. Didn't get much further than the download page, as the license is GPL and thus too restrictive for me.

piola

  • Full Member
  • ***
  • Posts: 124
  • Lazarus 2.2, 64bit on Windows 8.1 x64
Re: FNX (big integers)
« Reply #2 on: March 17, 2020, 06:16:49 pm »
Pardon my question, but how did you download?​ I only get an 403  :(

af0815

  • Hero Member
  • *****
  • Posts: 1291
Re: FNX (big integers)
« Reply #3 on: March 17, 2020, 06:39:57 pm »
I think LGPL with extensions like freepascal lib are ok for libraries. If GPL, it is useless for professional (closed) Source software. So i am not able to use it.
regards
Andreas

AlexTP

  • Hero Member
  • *****
  • Posts: 2406
    • UVviewsoft
Re: FNX (big integers)
« Reply #4 on: March 17, 2020, 07:37:31 pm »
I cannot use GPL licensed lib too, e.g. in CudaText app which has MPL2 license.

mjm

  • New member
  • *
  • Posts: 7
Re: FNX (big integers)
« Reply #5 on: March 18, 2020, 02:15:52 am »

Regarding the GPL license.
Frankly, there is a license because it is needed but I strictly don't care about it. So, OK, with the next release, a user will be able to choose: GPL or LGPL.

Regarding the 403 error.
Using the link of the fnx.html page should work. If not, what is your IP?
Notice that using a link to the file from an other site than ellipsa.eu doesn't work (it is intentional, the goal is to calm down robot frenzy).

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: FNX (big integers)
« Reply #6 on: March 18, 2020, 08:38:17 am »
with the next release, a user will be able to choose: GPL or LGPL.
I welcome your decision, but pure LGPL is not enough to allow static linking of our closed source with your library. If you want to let us do that then you would need to use FPC/Lazarus like modified LGPL license:
https://wiki.lazarus.freepascal.org/FPC_modified_LGPL
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

eljo

  • Sr. Member
  • ****
  • Posts: 468
Re: FNX (big integers)
« Reply #7 on: March 18, 2020, 05:38:13 pm »
Any gpl license is a no go for me I stay away from them all.

guest58172

  • Guest
Re: FNX (big integers)
« Reply #8 on: March 18, 2020, 08:49:08 pm »
If you don't care you can choose a permissive one, so MIT, Boost or BSD-3. Permissives are actually more common for libraries while GPL more used for applications. GPL for libraries and **especially non mainstream libraries** sux IMO.

mjm

  • New member
  • *
  • Posts: 7
Re: FNX (big integers)
« Reply #9 on: March 19, 2020, 01:30:41 am »
with the next release, a user will be able to choose: GPL or LGPL.
I welcome your decision, but pure LGPL is not enough to allow static linking of our closed source with your library.

I think I cannot use the modified LGPL. In the fnx.Common.LowLevel unit, about half the assembler code (64-bit Linux) is adapted from GMP. And GMP is GPL or LGPL.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11458
  • FPC developer.
Re: FNX (big integers)
« Reply #10 on: March 19, 2020, 09:06:16 am »
Yeah, that is a pity. The library looked interesting.

Or maybe relicense on a per unit basis. Then it can at least be used as a basis, and attempt to find substitutes for the encumbered routines.

Thaddy

  • Hero Member
  • *****
  • Posts: 14382
  • Sensorship about opinions does not belong here.
Re: FNX (big integers)
« Reply #11 on: March 19, 2020, 09:35:13 am »
I think I cannot use the modified LGPL. In the fnx.Common.LowLevel unit, about half the assembler code (64-bit Linux) is adapted from GMP. And GMP is GPL or LGPL.
For me it is not so much the license, but the fact that you mention the assembler code... That is usually not a good idea (me thinking X-platform).
About licensing: there is always the option to request a LGPL with linker exception from the original  license holders. I did so in the past on a few occasions and with 100% success.
I understand GMP is too big a project to get that done easily, but you always can try....

Also, I believe our member Xor-El has a similar library with a more liberal license. (And Marco, didn't you write a biginteger lib in the past?)
« Last Edit: March 19, 2020, 09:39:00 am by Thaddy »
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: FNX (big integers)
« Reply #12 on: March 19, 2020, 10:27:15 am »
with the next release, a user will be able to choose: GPL or LGPL.
I welcome your decision, but pure LGPL is not enough to allow static linking of our closed source with your library.

I think I cannot use the modified LGPL. In the fnx.Common.LowLevel unit, about half the assembler code (64-bit Linux) is adapted from GMP. And GMP is GPL or LGPL.
Thanks for letting us know that. Luckily there are alternatives.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11458
  • FPC developer.
Re: FNX (big integers)
« Reply #13 on: March 19, 2020, 10:31:31 am »
Also, I believe our member Xor-El has a similar library with a more liberal license. (And Marco, didn't you write a biginteger lib in the past?)

No, but I was interested in the subject and usually engage with posters interested in it.  Besides bigints I also worked on a project that required (fast) int128s, but that project didn't progress to the next stage.


mjm

  • New member
  • *
  • Posts: 7
Re: FNX (big integers)
« Reply #14 on: March 19, 2020, 10:50:06 am »
Or maybe relicense on a per unit basis. Then it can at least be used as a basis, and attempt to find substitutes for the encumbered routines.

Yes, it is a good idea. I could use a compiler directive to select the code, GPL/LGPL or modified LGPL.
Since it will take time to rewrite the concerned functions, obviously the code will be less good but I want it good enough, in the meantime I will release ASAP a 'new' version with both GPL and LGPL licenses.
« Last Edit: March 19, 2020, 04:25:50 pm by mjm »

 

TinyPortal © 2005-2018