Re: [fpc-devel] Declare variables inside the code
Am Wed, 11 May 2011 00:23:13 +0200 schrieb Vinzent Höfler : > I would. FPC already has interfaces. > > There are good reasons why most languages didn't adopt the C++-way > of doing MI. I think we have two concepts - inheritance - interface You can decide for one ore the other, or possibly mix them. It is a matter of design. Or a matter of capability to implement the concept. Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
On Wed, 11 May 2011 00:15:12 +0200, Joerg Schuelke wrote: Nobody would say that it is not helpful if somebody implements multi inherited objects for pascal. I would. FPC already has interfaces. There are good reasons why most languages didn't adopt the C++-way of doing MI. Vinzent. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
Am Tue, 10 May 2011 18:41:35 -0300 schrieb "kingbiz...@gmail.com" : > Lets see the OOP, its very helpful and speedup a lot the work and has > been added to the Pascal. Same for generics. OOP is an concept. Nobody would say that it would not be helpful if pascal has templates -an other very helpful concept-. Nobody would say that it is not helpful if somebody implements multi inherited objects for pascal. The reason for C++ to say a declaration is a statement is coding security. An uninitialized variable is in an undefined state, that`s why the declaration is suspended up to the time you can initialize the data and bring it to a defined state. The reasons for pascal not doing this: - overview is better if you have all var declarations together - the compiling process is easier if all vars are together. The reason to change the pascal behavior would not be to have a feature add-on, but a thinking in the same direction like C++, what can we do to make it possible that the compiler helps more in fulfilling assertions about variables and objects during their life time. Sorry the bad English, it is difficult to write about concepts without enough words. By the way I am not a fpc developer, what I write is my own opinion, not the one of the fpc team. Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
On Tue, 10 May 2011 23:48:30 +0200, Joerg Schuelke wrote: Am Tue, 10 May 2011 18:41:35 -0300 schrieb "kingbiz...@gmail.com" : Some small details can also increase the community. Lets see the OOP, its very helpful and speedup a lot the work and has been added to the Pascal. Same for generics. To decide that a declaration is a statement and can occur everywhere where a statement is required, is not that small you think. This has many consequences, influencing the whole code generation process. You mean, just like try/finally blocks? ;) FWIW, a declaration is not a statement here: Swap_And_Ignore_Exceptions : declare Temp : Integer; begin Temp := X; X := Y; Y := Temp; exception when others => null; end; Ada compilers can happily handle that since the mid-80s, so I don't see why doing it a quarter of a century later would suddenly be a problem. Apart from that I don't want to see it in Pascal, as it does not make sense there unless you go down the whole way... Vinzent. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
Am Tue, 10 May 2011 18:41:35 -0300 schrieb "kingbiz...@gmail.com" : > Some small details can also increase > the community. > > Lets see the OOP, its very helpful and speedup a lot the work and has > been added to the Pascal. Same for generics. To decide that a declaration is a statement and can occur everywhere where a statement is required, is not that small you think. This has many consequences, influencing the whole code generation process. Think about exceptions and stack rewinding. Think about efficiency of code generating, for many developers a reason for developing in pascal. Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
Em 10/05/2011 18:29, Joerg Schuelke escreveu: Am Tue, 10 May 2011 23:50:29 +0200 schrieb Hans-Peter Diettrich: The syntax would look like: Block = "BEGIN" [Declarations] {Statement} "END" . Yea, it looks like C, but it is not. The difference in C like languages is that an declaration is just a kind of statement. Without this, I think it makes no sense. But then you code C-like with pascal keywords. Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel I don't see any disadvantage writting a code with /C-like with pascal keywords/, shortcuts are always welcome in order to code faster (also this is the objective of the High-Level Languages, isn't?). I like Pascal and I don't see why to resist against some improvements, the language gets richer and easier. Some small details can also increase the community. Lets see the OOP, its very helpful and speedup a lot the work and has been added to the Pascal. Same for generics. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
Am Tue, 10 May 2011 23:50:29 +0200 schrieb Hans-Peter Diettrich : > The syntax would look like: > > Block = "BEGIN" [Declarations] {Statement} "END" . Yea, it looks like C, but it is not. The difference in C like languages is that an declaration is just a kind of statement. Without this, I think it makes no sense. But then you code C-like with pascal keywords. Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
Em 10/05/2011 18:50, Hans-Peter Diettrich escreveu: kingbiz...@gmail.com schrieb: *I have been playing on other languages sometimes and I see some features that speed-up a lot the code creating. I'm posting here one, I want to see what you think about it. * *Good:* fast algorithm testings, code creating *Bad?:* not a standard of the pascal language /*method* MyMethod; *var* A, B: Integer; *begin * { Simple sample of a variable inside the method begin/end near to a for-loop } *var* I: Integer; *for* I := a *to* b *do*... { Or even } *for* *var* J: Integer := a *to* b *do*... { This is normal on languages like C++ and Java } /*/end;/ * *What do you think about*? This could be made compatible with the FPC handling of Body, where e.g. a program or a procedure body is a Body, parsed by tcgprocinfo.parse_body(). The only required parser modification had to treat a For statement as a Body, with an (optional) specialized Var section at its begin, and a Statement after Do. But this solution would look strange to C coders, which expect variable declarations *after* the begin of an block, while Pascal expects local variables declared *before* the begin of an block. OTOH I don't think that it would be a big deal to allow for Pascal declarations also at the begin of an block. The syntax would look like: Block = "BEGIN" [Declarations] {Statement} "END" . DoDi ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel This already help, but what about declaring also after some code? I like on Java/C++/PHP that I can create a for-loop that creates the counter... sample on PHP: for(var; condition; step) for($var=0; $var<1000; $var += 1) This syntaxe is possible on C++, Java (its not equal, but its something very close). I would like to be able this: [ some code after begin ] DoSomething; var I: Integer; for I := 0 to 1000 do DoAnotherThing(I); [ inside the code ] ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
kingbiz...@gmail.com schrieb: *I have been playing on other languages sometimes and I see some features that speed-up a lot the code creating. I'm posting here one, I want to see what you think about it. * *Good:* fast algorithm testings, code creating *Bad?:* not a standard of the pascal language /*method* MyMethod; *var* A, B: Integer; *begin * { Simple sample of a variable inside the method begin/end near to a for-loop } *var* I: Integer; *for* I := a *to* b *do*... { Or even } *for* *var* J: Integer := a *to* b *do*... { This is normal on languages like C++ and Java } /*/end;/ * *What do you think about*? This could be made compatible with the FPC handling of Body, where e.g. a program or a procedure body is a Body, parsed by tcgprocinfo.parse_body(). The only required parser modification had to treat a For statement as a Body, with an (optional) specialized Var section at its begin, and a Statement after Do. But this solution would look strange to C coders, which expect variable declarations *after* the begin of an block, while Pascal expects local variables declared *before* the begin of an block. OTOH I don't think that it would be a big deal to allow for Pascal declarations also at the begin of an block. The syntax would look like: Block = "BEGIN" [Declarations] {Statement} "END" . DoDi ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
[fpc-devel] Macro Patch
This third revision with additional %FUNC% macro and 'unknown' strings changed to internalerror. Regards Jörg Index: scanner.pas === --- scanner.pas (Revision 17417) +++ scanner.pas (Arbeitskopie) @@ -237,7 +237,7 @@ systems, switches, symbase,symtable,symtype,symsym,symconst,symdef,defutil, - fmodule; + procinfo,fmodule; var { dictionaries with the supported directives } @@ -1712,11 +1712,33 @@ hs:=getdatestr else if hs='FILE' then - hs:=current_module.sourcefiles.get_file_name(current_filepos.fileindex) + begin + hp:=ascend_from_macros(current_module.sourcefiles.get_file(current_filepos.fileindex)); + if assigned(hp) then hs:=hp.name^ else internalerror(201105101) + end else if hs='LINE' then - hs:=tostr(current_filepos.line) + begin + hp:=ascend_from_macros(current_module.sourcefiles.get_file(current_filepos.fileindex)); + if assigned(hp) then hs:=tostr(hp.saveline_no) else internalerror(201105102) + end else + if hs='PATH' then +begin + hp:=ascend_from_macros(current_module.sourcefiles.get_file(current_filepos.fileindex)); + if assigned(hp) then hs:=hp.path^ else internalerror(201105103); + if hs='' then hs:=CurDirRelPath(target_info) +end + else + if hs='FUNC' then +begin + if assigned(current_procinfo) then + if assigned(current_procinfo.procdef) then +if assigned(current_procinfo.procdef.procsym) then + hs:=current_procinfo.procdef.procsym.realname +else internalerror(201105104); +end + else if hs='FPCVERSION' then hs:=version_string else @@ -3473,7 +3495,7 @@ mac.is_used:=true; inc(yylexcount); insertmacro(pattern,mac.buftext,mac.buflen, - mac.fileinfo.line,mac.fileinfo.fileindex); + current_scanner.line_no,current_scanner.inputfile.ref_index); { handle empty macros } if c=#0 then reload; Index: fmodule.pas === --- fmodule.pas (Revision 17417) +++ fmodule.pas (Arbeitskopie) @@ -235,6 +235,7 @@ function get_source_file(moduleindex,fileindex : longint) : tinputfile; procedure addloadedunit(hp:tmodule); function find_module_from_symtable(st:tsymtable):tmodule; +function ascend_from_macros(f:tinputfile) : tinputfile; implementation @@ -336,6 +337,13 @@ end; +function ascend_from_macros(f:tinputfile) : tinputfile; + begin +while assigned(f) and f.is_macro do f:=f.next; +ascend_from_macros:=f; + end; + + procedure addloadedunit(hp:tmodule); begin hp.moduleid:=loaded_units.count; ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
2011/5/10 kingbiz...@gmail.com : > I have been playing on other languages sometimes and I see some features > that speed-up a lot the code creating. I'm posting here one, I want to see > what you think about it. > > Good: fast algorithm testings, code creating > Bad?: not a standard of the pascal language > > method MyMethod; > var A, B: Integer; > begin > > { Simple sample of a variable inside the method begin/end near to a for-loop > } > var I: Integer; > for I := a to b do... > > { Or even } > for var J: Integer := a to b do... > { This is normal on languages like C++ and Java } > > end; > > What do you think about? To speed up code creation, use an IDE: http://wiki.lazarus.freepascal.org/Lazarus_IDE_Tools#Variable_Declaration_Completion Vincent ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Declare variables inside the code
Am Tue, 10 May 2011 13:26:59 -0300 schrieb "kingbiz...@gmail.com" : > *Good:* fast algorithm testings, code creating > *Bad?:* not a standard of the pascal language Thats a bad idea. It is completely against the basic structure of pascal. Other Languages have other paradigms. For example C++. There is no distinction between declaration and statement in C++. The declaration is a statement. But not so in pascal. If you change this, it is all about to be changed and you get a C++ with pascal-reserved words. Thats ugly. Thats useless. Best regards Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
[fpc-devel] Declare variables inside the code
*I have been playing on other languages sometimes and I see some features that speed-up a lot the code creating. I'm posting here one, I want to see what you think about it. * *Good:* fast algorithm testings, code creating *Bad?:* not a standard of the pascal language /*method* MyMethod; *var* A, B: Integer; *begin * { Simple sample of a variable inside the method begin/end near to a for-loop } *var* I: Integer; *for* I := a *to* b *do*... { Or even } *for* *var* J: Integer := a *to* b *do*... { This is normal on languages like C++ and Java } /*/end;/ * *What do you think about*? ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Re: Can't compile at revision: 17417
On Tue, May 10, 2011 at 11:55 AM, Joerg Schuelke wrote: > Am Tue, 10 May 2011 11:11:22 -0300 > schrieb Marcos Douglas : > >> PS: BTW, what the difference (at least on Win) to use option "install" >> in 'make'? > > Thats not windows related, make works the same way on all platforms. > The arguments for make are: > - options for make himself > - targets (which parts of code to build) > - variable definitions (which may modify the making of the targets) > > There are some commonly used targets with self explaining names > - clean (tries to delete all during the build process generated files) > - all (builds all targets -if you have more than one-) > - install (installs the former build targets) > > If you want to know more about how make works, look for documentation. > There is a lot of. > > There is somewhere a doc about the fpc build process, google for "fpc > build faq". > > I think that is not development related, if you have more questions it > may be better to visit a forum or the general fpc-pascal mailing list. OK, thank you. Marcos Douglas ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Re: Can't compile at revision: 17417
Am Tue, 10 May 2011 11:11:22 -0300 schrieb Marcos Douglas : > PS: BTW, what the difference (at least on Win) to use option "install" > in 'make'? Thats not windows related, make works the same way on all platforms. The arguments for make are: - options for make himself - targets (which parts of code to build) - variable definitions (which may modify the making of the targets) There are some commonly used targets with self explaining names - clean (tries to delete all during the build process generated files) - all (builds all targets -if you have more than one-) - install (installs the former build targets) If you want to know more about how make works, look for documentation. There is a lot of. There is somewhere a doc about the fpc build process, google for "fpc build faq". I think that is not development related, if you have more questions it may be better to visit a forum or the general fpc-pascal mailing list. Regards Jörg ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Re: Can't compile at revision: 17417
On Mon, May 9, 2011 at 5:38 PM, Joerg Schuelke wrote: > Am Mon, 9 May 2011 17:23:30 -0300 > schrieb Marcos Douglas : > >> > I use /fixes_2_4 but I could not to compile (error in first mail). >> > So, I took a look in sources from /trunk. I compared this files >> > (odbcsql) and saw this difference between them (the patch). >> > >> Did you understand? > > I think there are two possibilities: > 1) During shutdown (shut off) something in your file system went > wrong. You should 'svn up' again. > Maybe svn can correct the error, or gives you a hint. > 2) It is windows related. For me all works fine. But i´m using > linux. In WinXP, with TortoiseSVN I did: - Deleted directory packages\odbc - Clean UP - Updated I use /fixes_2_4... To compile I use a BAT (always worked): - @echo on set myroot=W:\dev\freepascal set myFPC=%myroot%\compiler\2.4.3 set mybinutils=%myroot%\binutils set PATH=%mybinutils%\i386-win32;%myFPC%\bin\i386-win32;%PATH% cd %myFPC% rd /s /q %myfpc%\examples make clean all install INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe - Now works! Thanks Joerg. Marcos Douglas PS: BTW, what the difference (at least on Win) to use option "install" in 'make'? ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] SQLite and ftFmtBCD
I'll look at this solution. I'm a little bit confused about SQLFormatSettings and why it was implemented as it is now. I'll have to investigate this. IMO for locale independent formatting numeric, date, time values according to sql standard or better: ftFmtBCD: begin if P.AsFMTBCD.Precision > 15 then //we are out of REAL range, so we must bind as BLOB begin s tr1=BCDTOStrP.AsFMTBCD,SQLFormatSettings); checkerror(sqlite3_bind_blob(fstatement,I,pcharstr(str1), length(str1), @freebindstring)); end else begin d o1=P.AsFloat checkerror(sqlite3_bind_double(fstatement,I,do1)); end; end; This is wrong. There are some values which can't be written as floats, but have precision<15. Yes, then my mystake then we can/must use: ftFmtBCD: begin str1:=BCDTOStr(P.AsFMTBCD,SQLFormatSettings); //bind as BLOB, because when bind as TEXT, SQLite always will convert to REAL or INTEGER, //which can lead to lost of precision checkerror(sqlite3_bind_blob(fstatement,I,pcharstr(str1), length(str1), @freebindstring)); end; But this particular piece of code is used when an invalid value is supplied, like 'DECIMAL(10,A)'. yes, in this case we can default to 4 (but A as scale is in all cases something very strange) The case that the value is omitted is handled elsewhere. ok, in this case we should use 0 " Isn't it better to map to a ftInteger/ftLargeInt field when size1=0?" Yes IMHO it is better, at least because ftLargeInt (int64) can hold more significant digits (left to decimal point) than ftBCD (currency) But what if user defines NUMERIC(30,0) then we have two options: 1. say "sorry" SQLite does not support this, so we map to ftLargeInt Nah... 2. or map to ftFmtBCD if (scale>4) or (precision>18) if precision>18 then ftFmtBCD else if scale=0 then ftLargeInt else if scale<=4 then ftBCD else ftFmtBCD Can you create a patch which does this? Yes, tomorow I will do it Laco. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] SQLite and ftFmtBCD
On Tue, 2011-05-10 at 12:39 +0200, LacaK wrote: > Hi Joost (and others also ;-), > > I comment your question about > http://bugs.freepascal.org/view.php?id=18809 here. > (because I do not know what comment here and what in bug tracker) > > I see problem in fact, that AsString returns number formated using > locale specific DecimalSeparator. > So if FmtBCD param will hold value "123456789,123456789" then this value > will be written into SQLite3 database. > > Which is IMO not very good, becuase SQL standard and also SQLite > expects, that numeric values will always have point as decimal separator. True. > So my suggestion is in case of ftFMTBCD param use something like: > > ftFmtBCD: begin > str1:= BCDToStr(P.AsFMTBCD, SQLFormatSettings); //this depend on > bug 18807 > checkerror(sqlite3_bind_text(fstatement,I,pcharstr(str1), > length(str1),@freebindstring)); > end; I'll look at this solution. I'm a little bit confused about SQLFormatSettings and why it was implemented as it is now. I'll have to investigate this. > or better: > ftFmtBCD: begin > if P.AsFMTBCD.Precision > 15 then //we are out of REAL range, so > we must bind as BLOB > begin > str1:=BCDTOStr(P.AsFMTBCD, SQLFormatSettings); > checkerror(sqlite3_bind_blob(fstatement,I,pcharstr(str1), > length(str1), @freebindstring)); > end > else > begin >do1=P.AsFloat > checkerror(sqlite3_bind_double(fstatement,I,do1)); > end; > end; This is wrong. There are some values which can't be written as floats, but have precision<15. > -- > Other questions: > > " Isn't it better to use '4' instead of 255/0 as default value for > the scale?" > SQL standard says, that if scale is ommited then scale is 0 ... imho it > is better to follow standard But this particular piece of code is used when an invalid value is supplied, like 'DECIMAL(10,A)'. The case that the value is omitted is handled elsewhere. > > " Isn't it better to map to a ftInteger/ftLargeInt field when size1=0?" > Yes IMHO it is better, at least because ftLargeInt (int64) can hold more > significant digits (left to decimal point) than ftBCD (currency) > But what if user defines NUMERIC(30,0) then we have two options: > 1. say "sorry" SQLite does not support this, so we map to ftLargeInt Nah... > 2. or map to ftFmtBCD if (scale>4) or (precision>18) > > if precision>18 then ftFmtBCD > else if scale=0 then ftLargeInt > else if scale<=4 then ftBCD > else ftFmtBCD Can you create a patch which does this? Joost ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
[fpc-devel] SQLite and ftFmtBCD
Hi Joost (and others also ;-), I comment your question about http://bugs.freepascal.org/view.php?id=18809 here. (because I do not know what comment here and what in bug tracker) I see problem in fact, that AsString returns number formated using locale specific DecimalSeparator. So if FmtBCD param will hold value "123456789,123456789" then this value will be written into SQLite3 database. Which is IMO not very good, becuase SQL standard and also SQLite expects, that numeric values will always have point as decimal separator. So my suggestion is in case of ftFMTBCD param use something like: ftFmtBCD: begin str1:= BCDToStr(P.AsFMTBCD, SQLFormatSettings); //this depend on bug 18807 checkerror(sqlite3_bind_text(fstatement,I,pcharstr(str1), length(str1),@freebindstring)); end; or better: ftFmtBCD: begin if P.AsFMTBCD.Precision > 15 then //we are out of REAL range, so we must bind as BLOB begin str1:=BCDTOStr(P.AsFMTBCD, SQLFormatSettings); checkerror(sqlite3_bind_blob(fstatement,I,pcharstr(str1), length(str1), @freebindstring)); end else begin do1=P.AsFloat checkerror(sqlite3_bind_double(fstatement,I,do1)); end; end; about SQLFormatSettings see: http://bugs.freepascal.org/view.php?id=17188 -- Other questions: " Isn't it better to use '4' instead of 255/0 as default value for the scale?" SQL standard says, that if scale is ommited then scale is 0 ... imho it is better to follow standard " Isn't it better to map to a ftInteger/ftLargeInt field when size1=0?" Yes IMHO it is better, at least because ftLargeInt (int64) can hold more significant digits (left to decimal point) than ftBCD (currency) But what if user defines NUMERIC(30,0) then we have two options: 1. say "sorry" SQLite does not support this, so we map to ftLargeInt 2. or map to ftFmtBCD if (scale>4) or (precision>18) if precision>18 then ftFmtBCD else if scale=0 then ftLargeInt else if scale<=4 then ftBCD else ftFmtBCD -Laco. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] Closing bug reports or not ?
Jonas Maebe wrote: On 09 May 2011, at 12:54, Mark Morgan Lloyd wrote: Is there a polite way for a reporter who's submitted a fix to ping management when the bug's not been assigned to anybody? You can always ask about it here, or add a "ping" comment to the bug (the latter will put it back at the top of the list of unassigned bugs). That was intended as a general question more than anything else, but if somebody could pick up my modified serial.pp at 0018946 it would be appreciated. -- Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues] ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] fppkg question
On Tue, 10 May 2011 08:30:28 +0200 (CEST), Michael Van Canneyt wrote: On Tue, 10 May 2011, Darius Blaszyk wrote: Hi, I've created a trivial front end for fppkg (see lazarus mailing list) but working on this I realized that they are not grouped in any way. Currently with approx. 70 packages this is not a real problem, but if the system will get used more widely it will be impossible to deduct the purpose (and possibly other info) from the package just by it's name. Therefore I would like to request a new command named "info" that retrieves the info for a package from packages.xml. I would also like to add some more info in this file for a package: - the topic that organizes the packages (FPC core / DB / buttons / charts / dialogs / etc) - keywords to make it possible to search freely - support contact (official / community) See the following movie on youtube on a plugin system that has some of these features: http://www.youtube.com/watch?v=d9yyJmh3dyU&feature=player_embedded Are / were there any plans ever in this direction? Am I free to create a couple of patches? It exists. If you look at fprepos.pp : TFPPackage = Class(TStreamCollectionItem) Property Name : String Read FName Write SetName; Property Author : String Read FAuthor Write FAuthor; Property Version : TFPVersion Read FVersion Write SetVersion; Property License : String Read FLicense Write FLicense; Property Description : String Read FDescription Write FDescription; Property HomepageURL : String Read FHomepageURL Write FHomepageURL; Property DownloadURL : String Read FDownloadURL Write FDownloadURL; Property FileName : String Read GetFileName Write FFileName; Property Email : String Read FEmail Write FEmail; end The same information can be stored in the fpmake.pp file. All this info is supposed to be output in XML format from fpmake --manifest. fppkg picks it up and stores it in the repository. If you want to extend it to include a category and keywords, be my guest. Thanks, that was the class indeed I was looking for to extend. Darius ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel