Re: [fpc-pascal] download mirror is missing
In our previous episode, Mattias Gaertner said: > > https://www.freepascal.org/down/x86_64/linux-netherlands.var > > 550 /pub/fpc/dist/3.0.2/x86_64-linux Not missing, but wrong url. The dutch ftp mirror is of the form: ftp://freepascal.stack.nl/pub/mirrors/fpc/ The dutch mirror shows the right paths: http://freepascal.stack.nl/down/x86_64/linux-netherlands.html so it must be something in how the main site is updated. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Browser and exe
On 2017-05-24 18:36, Marcos Douglas B. Santos wrote: I've searched the code and don't know whether that I found is the official or the more updated repository. So, I found this http://www.indyproject.org/Sockets/Download/svn.EN.aspx If I understood right, the good version to use with FPC is 10. Am I correct? Yes, use the latest code from SVN trunk v10. There is no more difference between Delphi and FPC versions for Indy - they are now common code. SubVersion repo: https://svn.atozed.com:444/svn/Indy10/trunk 1. Did you have problems with Windows firewall? No problems, and neither on Linux or FreeBSD. Simply make sure you use a port number greater than 1024 (otherwise *nix systems will require root access). 2. How did you garantee that others applications aren't being using the same port as your application to avoind conflicts? I looked at the official IANA list of registered port numbers and chose a port number that hasn't been taken yet. http://www.iana.org/assignments/port-numbers Under FreeBSD you can review the /etc/services file. I believe Linux has something similar. Or simply use the URL above. 3. How was the best way to start the application as a server and keeping it alive? In our case, the user double clicked our application icon on the desktop. This started a desktop GUI application, which at the same time started the embedded HTTP server (which was built into that desktop application). They then searched and scheduled their assigned tasks for the day/lesson. They then clicked "view module", which then launched the installed web browser with the correct URL as parameter - thus connecting to the embedded HTTP server. In the mean time the desktop application stayed open - otherwise the embedded HTTP server will obvious shut down. We also had a user configurable option that when they clicked "view module", it could also minimise the desktop application before launching the web browser. We thought of implementing a Windows Service & *nix Daemon, but that would require more effort to install etc. The desktop application was the simplest solution and worked perfectly. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Browser and exe
On Wed, May 24, 2017 at 11:07 AM, Graeme Geldenhuyswrote: > n 2017-05-24 14:52, Marcos Douglas B. Santos wrote: >> >> What do you propose to use to make an embedded HTTP server nowadays? > > > I really like Indy components. They are complete and well tested for over a > decade. There support is fantastic too, and you have tons of resources > available on the internet. So this is my first choice. > > Synpase is okay, but they leave a lot of implementation up to you. In > comparison, Indy supplies every TCP protocol under the sun with client and > server components. > > I've never had the chance to use the FPC included HTTP server component, but > if Michael van Canneyt wrote it, it should be good and well tested. I've searched the code and don't know whether that I found is the official or the more updated repository. So, I found this http://www.indyproject.org/Sockets/Download/svn.EN.aspx If I understood right, the good version to use with FPC is 10. Am I correct? About your known in this area, because you've already done the same as I wish to develop, do you have others tips? For example: 1. Did you have problems with Windows firewall? 2. How did you garantee that others applications aren't being using the same port as your application to avoind conflicts? 3. How was the best way to start the application as a server and keeping it alive? Thanks. Best regards, Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] FPC Graphics options?
On Saturday 20 May 2017 21:34:34 Jonas Maebe wrote: > > Also in summary, very little was learned from this. We have known for a > long time that FPC needs SSA for better code generation for loops (and > Florian has been working on it for a long time too). > Here for comparison the results of FPC / MSElang - LLVM 3.8.0: Linux 32 bit Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz With round() operations https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest.pas FPC 3.0.2 -O- -> 8 FPS -O4 -CfSSE3 -CpCOREI -> access violation -O3 -CfSSE3 -CpCOREI -> access violation -O2 -CfSSE3 -CpCOREI -> access violation -O1 -CpCOREI -CfSSE3 -> 12.5 FPS -O4 -CpCOREI -> 8.2 FPS MSElang, LLVM 3.8.0 No options -> 4.2 FPS -O3 -> 5.9 FPS -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 33.5 FPS With trunci32() operations https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest_trunc.pas -O3 -> 8.1 -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 41.5 FPS Martin ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] OpenGL and SDL frustrations
> On May 24, 2017, at 7:18 PM, Graeme Geldenhuys >wrote: > >> Any ideas on what’s wrong with this? > Ok, I got an answer from a person on YouTube and figured this out. The problem was 1) that SDL is returning a different version then I asked for and I didn’t do proper error checking. glEnableVertexAttribArray was failing for example because with OpenGL 4.1 (or earlier) a VAO is required before using VBO’s and 2) again, since 4.x, a shader is required to even draw white triangle. The demos I saw must have been on some version of 3.x but I was on 4.1. I’m still now sure how to guarantee SDL returns the version I want and it looks in your code you didn’t even try to specify anything besides core compatibility, not that it makes any difference because I always get 4.1 on my Mac or 2.1 and GLSL 1.2 for legacy mode. This begs the question of how I can write shaders if on any given computer I get a different version of GLSL. At least I got it working FINALLY after so much hassle but everything I do could easily break on others computers so... Regards, Ryan Joseph ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] FPC Graphics options?
On 05/24/2017 06:14 PM, James Richters wrote: I was finally able to get this working, and now my keyboard issues are solved, so thank for the help and fix Nikolay! I can't believe the performance increase using ptcgraph instead of graph, I am now even able to run my program on a tiny windows 10 tablet with no performance issues. Also ptccrt solves some of the bugs with wincrt, mainiy that wincrt doesn't respond to any alt keys at all and not all of the crtl keys It's great that it's finally working for you. And yes, ptccrt supports most alt and ctrl key combinations, but if you find some key combination missing, please report it - it is easy to add. What I finally realized was there was another set of PTC units with the default installation of Freepascal 3.0.2 that I needed to remove so the correct versions of the files could be found. Perhaps it would be a good idea to make note of this in the instructions? I ended up needing to remove: H:\FPC\3.0.2\units\i386-win32\graph\ptcgraph.ppu H:\FPC\3.0.2\units\i386-win32\graph\ptcgraph.0 H:\FPC\3.0.2\units\i386-win32\graph\ptccrt.ppu H:\FPC\3.0.2\units\i386-win32\graph\ptccrt.0 H:\FPC\3.0.2\units\i386-win32\graph\ptcmouse.ppu H:\FPC\3.0.2\units\i386-win32\graph\ptcmouse.0 And the entire folder H:\FPC\3.0.2\units\i386-win32\ptc Also I could not compile with a space in my FPC install directory, so a quick comment about that may be useful to someone. Yes, the ptcpas compilation instructions in INSTALL.txt are from the time when ptcpas wasn't included in the fpc distribution, and haven't been updated since then. This usually isn't a problem, since most people use the version that comes with fpc. Only when I add a new feature, or bug fix is there a need to update it. Eventually, I'm going to commit these changes in fpc trunk and they will be included in the next version of fpc as well, so most people will get these updates this way. James -Original Message- From: fpc-pascal [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of James Richters Sent: Tuesday, May 23, 2017 5:40 PM To: 'FPC-Pascal users discussions'Subject: Re: [fpc-pascal] FPC Graphics options? Just like you now use -FuSomePath to tell the compiler where to find units, you can use -FiSomePath to tell the compiler where to look for include files. I've been trying to compile with Free Pascal Text IDE, I have no experience with compiling programs from the command line, but this gave me an idea to try it from command line instead. First, I thought I would start clean, and I re-installed Free Pascal and left the directory structure alone, and just changed the drive to H: where I have a lot of room. I suspect it did not like the space I had in my directory name. From the new install of FPC 3.0.2 on my H Drive, I was able to successfully follow the instructions and I finally managed to compile ptcpas-code-715-trunk. I was also able to compile the examples and they executed correctly. So I used the command line used to compile one of the examples, and put the whole path of ptcpas in and I was finally able to successfully compile my test program with the following command line: h:/FPC/3.0.2/bin/i386-Win32/ppc386.exe -Fuh:/ptcpas-code-715-trunk/units/i386-win32/ -FE. -FUh:/ptcpas-code-715-trunk/units/i386-win32 -di386 dual-key-screen.pas When I compiled It this way, I am now able to ALT-Tab from the graph window and when I return everything is fine, so this proves the problem has been solved, but integrating the solution into my compiler is the problem. I am trying to get it to work from the Free Pascal text mode IDE but when I add h:\ptcpas-code-715-trunk\units\i386-win32 to the list of unit directories in the Free Pascal text IDE and try to compile my program, I get: PPU Loading H:\ptcpas-code-715-trunk\units\i386-win32\ptcgraph.ppu ║ PPU Source: ptcgraph.pp not found ║ PPU Source: graphh.inc not available ║ PPU Source: graph.inc not available ║ PPU Source: fontdata.inc not available ║ PPU Source: clip.inc not available ║ PPU Source: palette.inc not available ║ PPU Source: modes.inc not available ║ PPU Source: fills.inc not available ║ PPU Source: gtext.inc not available ║ Recompiling ptcgraph, checksum changed for ptc ║ dual-key-screen.pas(3,6) Fatal: Can't find unit ptcgraph used by KeyTestWin.p ║ dual-key-screen.pas(0) Fatal: Compilation aborted How do I properly use the FreePascal Text mode IDE to use the ptcpas units I compiled? My entries under directories > Units are: H:\ptcpas-code-715-trunk\units\i386-win32 h:\FPC\3.0.2\units\$fpctarget h:\FPC\3.0.2\units\$fpctarget\* h:\FPC\3.0.2\units\$fpctarget\rtl All other directories tabs are blank Thanks for the help James -Original Message- From: fpc-pascal [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of Ewald Sent: Tuesday, May 23, 2017 2:03 PM To: FPC-Pascal users discussions
Re: [fpc-pascal] FPC Graphics options?
I was finally able to get this working, and now my keyboard issues are solved, so thank for the help and fix Nikolay! I can't believe the performance increase using ptcgraph instead of graph, I am now even able to run my program on a tiny windows 10 tablet with no performance issues. Also ptccrt solves some of the bugs with wincrt, mainiy that wincrt doesn't respond to any alt keys at all and not all of the crtl keys What I finally realized was there was another set of PTC units with the default installation of Freepascal 3.0.2 that I needed to remove so the correct versions of the files could be found. Perhaps it would be a good idea to make note of this in the instructions? I ended up needing to remove: H:\FPC\3.0.2\units\i386-win32\graph\ptcgraph.ppu H:\FPC\3.0.2\units\i386-win32\graph\ptcgraph.0 H:\FPC\3.0.2\units\i386-win32\graph\ptccrt.ppu H:\FPC\3.0.2\units\i386-win32\graph\ptccrt.0 H:\FPC\3.0.2\units\i386-win32\graph\ptcmouse.ppu H:\FPC\3.0.2\units\i386-win32\graph\ptcmouse.0 And the entire folder H:\FPC\3.0.2\units\i386-win32\ptc Also I could not compile with a space in my FPC install directory, so a quick comment about that may be useful to someone. James -Original Message- From: fpc-pascal [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of James Richters Sent: Tuesday, May 23, 2017 5:40 PM To: 'FPC-Pascal users discussions'Subject: Re: [fpc-pascal] FPC Graphics options? >Just like you now use -FuSomePath to tell the compiler where to find units, >you can use -FiSomePath to tell the compiler where to look for include files. I've been trying to compile with Free Pascal Text IDE, I have no experience with compiling programs from the command line, but this gave me an idea to try it from command line instead. First, I thought I would start clean, and I re-installed Free Pascal and left the directory structure alone, and just changed the drive to H: where I have a lot of room. I suspect it did not like the space I had in my directory name. From the new install of FPC 3.0.2 on my H Drive, I was able to successfully follow the instructions and I finally managed to compile ptcpas-code-715-trunk. I was also able to compile the examples and they executed correctly. So I used the command line used to compile one of the examples, and put the whole path of ptcpas in and I was finally able to successfully compile my test program with the following command line: h:/FPC/3.0.2/bin/i386-Win32/ppc386.exe -Fuh:/ptcpas-code-715-trunk/units/i386-win32/ -FE. -FUh:/ptcpas-code-715-trunk/units/i386-win32 -di386 dual-key-screen.pas When I compiled It this way, I am now able to ALT-Tab from the graph window and when I return everything is fine, so this proves the problem has been solved, but integrating the solution into my compiler is the problem. I am trying to get it to work from the Free Pascal text mode IDE but when I add h:\ptcpas-code-715-trunk\units\i386-win32 to the list of unit directories in the Free Pascal text IDE and try to compile my program, I get: PPU Loading H:\ptcpas-code-715-trunk\units\i386-win32\ptcgraph.ppu ║ PPU Source: ptcgraph.pp not found ║ PPU Source: graphh.inc not available ║ PPU Source: graph.inc not available ║ PPU Source: fontdata.inc not available ║ PPU Source: clip.inc not available ║ PPU Source: palette.inc not available ║ PPU Source: modes.inc not available ║ PPU Source: fills.inc not available ║ PPU Source: gtext.inc not available ║ Recompiling ptcgraph, checksum changed for ptc ║ dual-key-screen.pas(3,6) Fatal: Can't find unit ptcgraph used by KeyTestWin.p ║ dual-key-screen.pas(0) Fatal: Compilation aborted How do I properly use the FreePascal Text mode IDE to use the ptcpas units I compiled? My entries under directories > Units are: H:\ptcpas-code-715-trunk\units\i386-win32 h:\FPC\3.0.2\units\$fpctarget h:\FPC\3.0.2\units\$fpctarget\* h:\FPC\3.0.2\units\$fpctarget\rtl All other directories tabs are blank Thanks for the help James -Original Message- From: fpc-pascal [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of Ewald Sent: Tuesday, May 23, 2017 2:03 PM To: FPC-Pascal users discussions Subject: Re: [fpc-pascal] [FPC-Pascal] FPC Graphics options? On 23/05/17 19:50, James Richters wrote: > *correction to directory names: > Now I got an error that it could not find graphh.inc So I copied all the .inc > files from J:\Programming\FPC 3.0.2\units\i386-win32\ptcpas\ptcgraph\inc to > J:\Programming\FPC 3.0.2\units\i386-win32\ptcpas\ptcgraph because I have no > idea how else to make it find them. Just like you now use -FuSomePath to tell the compiler where to find units, you can use -FiSomePath to tell the compiler where to look for include files. See `fpc -h`, under the section "-F Set file names and paths:" for a list of other related switches. -- Ewald ___
Re: [fpc-pascal] Browser and exe
On 2017-05-24 14:52, Marcos Douglas B. Santos wrote: What do you propose to use to make an embedded HTTP server nowadays? I really like Indy components. They are complete and well tested for over a decade. There support is fantastic too, and you have tons of resources available on the internet. So this is my first choice. Synpase is okay, but they leave a lot of implementation up to you. In comparison, Indy supplies every TCP protocol under the sun with client and server components. I've never had the chance to use the FPC included HTTP server component, but if Michael van Canneyt wrote it, it should be good and well tested. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Browser and exe
On Wed, May 24, 2017 at 10:40 AM, Graeme Geldenhuyswrote: > I've done this before in a project for one of my previous employers. Out > desktop application did user logins, reporting and for some functionality > offloaded it to the web browser (which was launched automatically for them). > This worked under Linux, Windows and FreeBSD, and worked very well. We could > also switch between Synapse or Indy for the embedded HTTP server component. > At the time FPC didn't have its own HTTP Sever component. We are in the same page. I would ask about the embedded HTTP server... What do you propose to use to make an embedded HTTP server nowadays? I am using FPC 3.0.2 and Lazarus trunk. Thanks. Best regards, Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Browser and exe
On 2017-05-24 10:01, Michael Van Canneyt wrote: 2. to make an app that will be a local web server, after the user has installed. The web real app could make requests to http//localhost and have a communication between them. I think this is your best option. I've done this before in a project for one of my previous employers. Out desktop application did user logins, reporting and for some functionality offloaded it to the web browser (which was launched automatically for them). This worked under Linux, Windows and FreeBSD, and worked very well. We could also switch between Synapse or Indy for the embedded HTTP server component. At the time FPC didn't have its own HTTP Sever component. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] OpenGL and SDL frustrations
On 2017-05-24 04:13, Ryan Joseph wrote: Any ideas on what’s wrong with this? I actually used the Java + OpenGL tutorials on YouTube, and translating those examples to Object Pascal + OpenGL + SDL2 was pretty easy. This is my favourite one, and uses "modern OpenGL" only. https://www.youtube.com/watch?v=VS8wlS9hF8E=PLRIWtICgwaX0u7Rf9zkZhLoLuZVfUksDP "OpenGL 3D Game Tutorial" by ThinMatrix. I also wanted something reusable, so I implemented classes in separate units that I can reuse between projects. Instead of 100's of loosely scattered OpenGL API calls. I was actually going to contribute all this work as part of my Lazarus Graphics Programming Contest entry, but I might just release it earlier than that. Anyway, attached is one such unit setting up my display. I use proprietary NVIDIA drivers under FreeBSD, and I only target OpenGL 4.x with my code. It works perfectly here. My program code is pretty much like this: TDisplayManager.CreateDisplay; while running do begin // do the "gaming loop" here TDisplayManager.UpdateDisplay; end; // clean-up code here TDisplayManager.CloseDisplay; Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp unit DisplayManager; {$mode objfpc}{$H+} interface uses SDL2, GL, GLext; type TDisplayManager = class(TObject) private class var FSDLWindow: PSDL_Window; class var FSDLGLContext: TSDL_GLContext; const cWIDTH = 856; cHEIGHT = 480; public class procedure CreateDisplay; static; class procedure UpdateDisplay; static; class procedure CloseDisplay; static; //property SDLWindow: PSDL_Window read FSDLWindow; end; implementation { TDisplayManager } class procedure TDisplayManager.CreateDisplay; begin if SDL_Init(SDL_INIT_VIDEO) < 0 then HALT; // setting so that deprecated functions are disabled SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); //get an OpenGL window and create OpenGL context FSDLWindow := SDL_CreateWindow('OpenGL Game Tutorial', SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, cWIDTH, cHEIGHT, SDL_WINDOW_OPENGL); if FSDLWindow = nil then HALT; FSDLGLContext := SDL_GL_CreateContext(FSDLWindow); if FSDLGLContext = nil then HALT; //init OpenGL and load extensions if Load_GL_VERSION_4_0 = false then if Load_GL_VERSION_3_3 = false then if Load_GL_VERSION_3_2 = false then //if Load_GL_VERSION_3_0 = false then begin writeln(' ERROR: OpenGL 3.2 or higher needed. '); HALT; end; glViewport(0, 0, cWIDTH, cHEIGHT); //print out OpenGL vendor, version and shader version writeln( 'Vendor: ' + glGetString( GL_VENDOR ) ); writeln( 'OpenGL Version: ' + glGetString( GL_VERSION ) ); writeln( 'Shader Version: ' + glGetString( GL_SHADING_LANGUAGE_VERSION ) ); end; class procedure TDisplayManager.UpdateDisplay; begin SDL_GL_SwapWindow(FSDLWindow); end; class procedure TDisplayManager.CloseDisplay; begin SDL_GL_DeleteContext(FSDLGLContext); SDL_DestroyWindow(FSDLWindow); SDL_Quit; end; end. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Browser and exe
On Tue, May 23, 2017 at 11:02 PM,wrote: > On 2017-05-23 20:52, Marcos Douglas B. Santos wrote: >> ... >> I'm still thinking on these options: >> >> 1. NativeMessaging: >> https://developer.chrome.com/extensions/nativeMessaging >> >> 2. to make an app that will be a local web server, after the user has >> installed. >> The web real app could make requests to http//localhost and have a >> communication between them. > > > Or a local chromium embedded/firefox embedded web browser that can talk to > any native code you want, then the person does not need a web server running > but will have to install the chromium embedded CEF dll's Well, I didn't know about chromium embedded so, I have searched: "The Chromium Embedded Framework (CEF) is a simple framework for embedding Chromium-based browsers in other applications." This is not I want, unfortunatelly. I will explain: You are thinking that my Desktop app (components) is the main app and the Web app is only one more piece. No. The Web app is the main application and it's not mine. My job is to make some especific components that will be used for this Web app. But the problem is that I need to be local access so, I need to install my app — and that isn't a problem for the custumers — to provide these features for the Web app. Best regards, Marcos Douglas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] download mirror is missing
Hi, https://www.freepascal.org/down/x86_64/linux-netherlands.var 550 /pub/fpc/dist/3.0.2/x86_64-linux Mattias ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Browser and exe
On Tue, 23 May 2017, Marcos Douglas B. Santos wrote: 2. to make an app that will be a local web server, after the user has installed. The web real app could make requests to http//localhost and have a communication between them. I think this is your best option. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal