Recent

Recent Posts

Pages: [1] 2 3 ... 10
1
FPC development / Re: assembler name is longer than 16 chars
« Last post by Laksen on Today at 11:40:43 am »
You should not hardcode the assembler prefix. It should be determined automatically, or be configured by the user (The -XP<prefix> command). Just put the asmbin name as 'as'

If you need special cases try to look in "options.pas". Look for other places where utilsprefix is set
2
General / Re: Assign (textfile) not compiling - sometimes.
« Last post by Bart on Today at 11:35:37 am »
Those two do not belong there. They are simple aliases to system.assign() and system.close().
Should never have been introduced unless Delphi has them.
And of course Delphi has them, for the reason this thread makes ovious: if you use assign/close in a form's event, you'll get an error.

Bart
3
FPC development / Re: Warning: Source OS Redefined!
« Last post by Laksen on Today at 11:32:46 am »
Just do something like this. "ps1" would have to match the OS define that you create. But if you follow the same conventions otherwise it should be fine as below

Code: Pascal  [Select][+][-]
  1. initialization
  2. {$ifdef CPUMIPSEL}
  3.   {$ifdef ps1}
  4.     set_source_info(system_mipsel_ps1_info);
  5.   {$endif ps1}
  6. {$endif CPUMIPSEL}
  7.  
4
FPC development / Re: how to see what command string is passed to AS?
« Last post by Laksen on Today at 11:30:25 am »
"-sh" can be used to generate a ppas.sh file which contains the assembler command
5
General / Re: Slow copying of small structures
« Last post by alpine on Today at 11:25:10 am »
Thank you, that all makes sense.
@Alpine: It is about all operations on small structures where the compiler inserts a REP MOVSL, as in an operator or function, or when copying. Thanks for the hint with the hard types to cheat the compiler, that could be useful. In the matter at hand it won't help because the := operator is still an operator with infix notation, and the compiler will insert its REP MOVSL no matter what (inlining it does not change this).
By crafting the expression (see my last 4 lines) you can actually remove the REPs, but that's not the point. Generally, the infix operator notation will always require temporaries, hence operators are suboptimal. And fpc lacks copy constructors, static objects, etc. it's a pity.

Optimizing the copying of structures will be fantastic, but in the context of operators I doubt it will change the situation with regard to the procedures.
6
FPC development / assembler name is longer than 16 chars
« Last post by Key-Real on Today at 11:15:20 am »
cpugas.pas(261,40) Warning: (treated as error) String "mipsel-unknown-elf-as" is longer than "16"
cpugas.pas(293) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted


but my AS is truely called  "mipsel-unknown-elf-as"


what to do?
7
Other / Re: Question for people who have built commercial apps
« Last post by BrassGear on Today at 11:12:50 am »
Personally I like to own something if I have to pay for it. I avoid anything with a subscription model for that reason, and another reason is the inflated cost compounded over years.
I think there are a lot of people that feel this way, but the software industry is trying very hard to move to subscriptions, for obvious financial reasons. In my opinion, it is better to support a model that favours reliability and longevity.
8
i need to see what command string is passed to AS.

is there a switch not to delete the script files

-a only does not delete the .s file
9
FPC development / Re: Warning: Source OS Redefined!
« Last post by Key-Real on Today at 11:07:49 am »
Code: Pascal  [Select][+][-]
  1. unit i_ps1;
  2.  
  3. {$i fpcdefs.inc}
  4.  
  5.   interface
  6.  
  7.     uses
  8.        systems;
  9.  
  10.     const
  11.  
  12.        system_mipsel_ps1_info : tsysteminfo =
  13.           (
  14.             system       : system_mipsel_ps1;
  15.             name         : 'PlayStation 1 for MIPSEL';
  16.             shortname    : 'ps1';
  17.             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  18.                             tf_requires_proper_alignment,tf_library_needs_pic,
  19.                             tf_pic_uses_got,tf_safecall_exceptions,
  20.                             tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
  21.             cpu          : cpu_mipsel;
  22.             unit_env     : 'LINUXUNITS';
  23.             extradefines : 'UNIX;HASUNIX';
  24.             exeext       : '';
  25.             defext       : '.def';
  26.             scriptext    : '.sh';
  27.             smartext     : '.sl';
  28.             unitext      : '.ppu';
  29.             unitlibext   : '.ppl';
  30.             asmext       : '.s';
  31.             objext       : '.o';
  32.             resext       : '.res';
  33.             resobjext    : '.or';
  34.             sharedlibext : '.so';
  35.             staticlibext : '.a';
  36.             staticlibprefix : 'libp';
  37.             sharedlibprefix : 'lib';
  38.             sharedClibext : '.so';
  39.             staticClibext : '.a';
  40.             staticClibprefix : 'lib';
  41.             sharedClibprefix : 'lib';
  42.             importlibprefix : 'libimp';
  43.             importlibext : '.a';
  44. //            p_ext_support : false;
  45.             Cprefix      : '';
  46.             newline      : #10;
  47.             dirsep       : '/';
  48.             assem        : as_none;
  49.             assemextern  : as_gas;
  50.             link         : ld_none;
  51.             linkextern   : ld_ps1;
  52.             ar           : ar_gnu_ar;
  53.             res          : res_elf;
  54.             dbg          : dbg_dwarf3;
  55.             script       : script_unix;
  56.             endian       : endian_little;
  57.             alignment    :
  58.               (
  59.                 procalign       : 4;
  60.                 loopalign       : 4;
  61.                 jumpalign       : 0;
  62.                 jumpalignskipmax    : 0;
  63.                 coalescealign   : 0;
  64.                 coalescealignskipmax: 0;
  65.                 constalignmin   : 0;
  66.                 constalignmax   : 8;
  67.                 varalignmin     : 0;
  68.                 varalignmax     : 8;
  69.                 localalignmin   : 4;
  70.                 localalignmax   : 8;
  71.                 recordalignmin  : 0;
  72.                 recordalignmax  : 8;
  73.                 maxCrecordalign : 8
  74.               );
  75.             first_parm_offset : 0;
  76.             stacksize    : 32*1024*1024;
  77.             stackalign   : 8;
  78.             abi : abi_default;
  79.             llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-n32-S64';
  80.           );
  81.  
  82.   implementation
  83.  
  84. initialization
  85.  
  86.     set_source_info(system_mipsel_ps1_info);
  87.  
  88. end.
  89.  


it's not finished jet, but could You pls take a look?
10
I was originally working on a messaging platform, using fpc+laz to make the client, but then I had this idea for a networked game, and built it on top of the messaging platform.
Today I launched an early release. This time, leading up to the early release, it was a real crunch. It has been difficult, but I am super grateful for freepascal, lazarus, blender, and all the other software that gave me this chance to release something commercially.

Has anyone else experience with something like this? Any advice would be appreciated.
I have at times doubted the decision to not use a game engine. But then I think of my messaging queue made out of records and arrays. How could any generalist game engine compete with that kind of simplicity and efficiency? The simple answer is they can't really.

Today I am working on the windows version. The game is on itch.io if you want to check it out. I would love to hear any thoughts you may have. Do you think the price is good for what it is/what it seems to be?
Pages: [1] 2 3 ... 10

TinyPortal © 2005-2018