February 25, 2020
On Tuesday, 25 February 2020 at 03:28:07 UTC, Akira1364 wrote:
> On Friday, 15 November 2019 at 09:02:55 UTC, Basile B. wrote:
>> [...]
>
> I clearly didn't *intentionally* leave out the history. It simply didn't exist in the tarball someone on Reddit found, that I restored the repo from. Looking at some other comments from more recently here though it seems they did later on find one with the history intact (and more up to date sources), so I'll see if I can merge that all in.

Don't bother. You will not be able to develop it anyway. While you seemed to mostly care about the dependencies I've already pushed new features and fixes like

- the global compiler ;
- during debug, inspect variable from mouse motion on the editor ;
- fixed constant load even on idle (was 3-4% on my 5-6 years old hardware)
- support for GNU-style messages ;
- removed some confusing fields in the compiler path editor ;

Most of these stuff can only be programmed by someone who practices D a bit at least.

You (non-nominative) have to follow the language devel constantly and adapt the IDE accordingly (support for GNU messages is there because I check the DMD PRs and the issues daily). In the same order of ideas I'm pretty sure that you don't even know that at some point SemVer version 2 will have to be supported. There's also some activity related to the tools and DMD as a library... You see you have to follow what's happening.

Also since there are (almost) not tests you risk to break things without even realizing. You need to have advanced projects, advanced scripts (for example I have a few that link automagically dbeaengine or cairo, they allow me to verify that the runnables and the module registry work).

But if you want to give a hand there are a few areas of the software that don't really require to know D well. The terminal for example... I'm sure that a Lazarus developer would be useful since it's mostly about a GTK2 widget. I still don't manage to put those damn scrollbars... Another thing is the support for GTK3. Dexed just crashes at startup when use the GTK3 widget set. The profile viewer is also something that can be enhanced, though if I really need to profile I would rather use callgrind + KCacheGrind.
February 25, 2020
On Tuesday, 25 February 2020 at 14:48:28 UTC, Basile B. wrote:
> Most of these stuff can only be programmed by someone who practices D a bit at least.

I don't really agree, to be honest with you. I'd say at the very least 80% of it doesn't actually require a lot of D knowledge at all as it's just pretty universal IDE stuff (process management, etc.)

I did quite a bit more than just rework the dependencies, also, and none of it was very difficult at all. For example, I reworked literally all the uses of container classes in the entire project around LGenerics:

https://github.com/avk959/LGenerics

which is significantly more performant than any of FPC's built-in non-generic *or* generic ones. I also fixed several general bugs, like by getting rid of your unnecessary custom JSON encoding translator (which didn't even completely work properly) and just using normal stream functionality instead.

Also, a lot of the issues you seem to have with the LCL / FPC and such just don't exist in the trunk versions, which is why I opted to use them to work on it instead of the "stable" ones.


February 25, 2020
On Tuesday, 25 February 2020 at 19:53:58 UTC, Akira1364 wrote:
> [...]

Also, I actually have been taking a bit of time to familiarize myself with D a bit more specifically because I felt like I probably should if I was going to keep working on Dexed.

I ported my FPC implementation of the "Binary Trees" benchmark (which is currently in first place on the benchmarksgame website) to D, and even managed to get it just about as fast (on my machine at least):

https://github.com/Akira13641/BinaryTreesBenchmark


February 25, 2020
On Tuesday, 25 February 2020 at 19:53:58 UTC, Akira1364 wrote:
> [...]
> I also fixed several general bugs, like by getting rid of your unnecessary custom JSON encoding translator (which didn't even completely work properly) and just using normal stream functionality instead.
>
> Also, a lot of the issues you seem to have with the LCL / FPC and such just don't exist in the trunk versions, which is why I opted to use them to work on it instead of the "stable" ones.

Yeah but did you try to load a goddamn JSON recipe that **has** the BOM written ?
This stuff was there for a good reason you know ;)
February 26, 2020
On Tuesday, 25 February 2020 at 21:45:04 UTC, Basile B. wrote:
> Yeah but did you try to load a goddamn JSON recipe that **has** the BOM written ?
> This stuff was there for a good reason you know ;)

The reason BOMs weren't working for you was because you were using a TMemoryStream to actually load the JSON files, and TMemoryStream is just a stream of raw bytes that knows absolutely nothing about encodings.

All I had to do to get rid of your 30 lines of "BOM skipping" code was change the file loading part to this:

```
List := TStringList.Create;
List.LoadFromFile(FFileName, TEncoding.UTF8);
Stream := TStringStream.Create(List.Text, TEncoding.UTF8, False);
List.Free;
Stream.Position := 0;
```

And then continue by creating the TJSONParser from `Stream`. Doing it that way works correctly BOM or no BOM.

February 27, 2020
On Wednesday, 26 February 2020 at 03:10:30 UTC, Akira1364 wrote:
> On Tuesday, 25 February 2020 at 21:45:04 UTC, Basile B. wrote:
>> Yeah but did you try to load a goddamn JSON recipe that **has** the BOM written ?
>> This stuff was there for a good reason you know ;)
>
> The reason BOMs weren't working for you was because you were using a TMemoryStream to actually load the JSON files, and TMemoryStream is just a stream of raw bytes that knows absolutely nothing about encodings.
>
> All I had to do to get rid of your 30 lines of "BOM skipping" code was change the file loading part to this:
>
> ```
> List := TStringList.Create;
> List.LoadFromFile(FFileName, TEncoding.UTF8);
> Stream := TStringStream.Create(List.Text, TEncoding.UTF8, False);
> List.Free;
> Stream.Position := 0;
> ```
>
> And then continue by creating the TJSONParser from `Stream`. Doing it that way works correctly BOM or no BOM.

Okay, I recognize that I've been a bit unfair in the previous message but remember that this constructor overload does not exist yet in the freepascal library version 3.0.4, so I could not use it, hence those 30 lines had to be written.
February 27, 2020
On Wednesday, 26 February 2020 at 03:10:30 UTC, Akira1364 wrote:
> On Tuesday, 25 February 2020 at 21:45:04 UTC, Basile B. wrote:
>> Yeah but did you try to load a goddamn JSON recipe that **has** the BOM written ?
>> This stuff was there for a good reason you know ;)
>
> The reason BOMs weren't working for you was because you were using a TMemoryStream to actually load the JSON files, and TMemoryStream is just a stream of raw bytes that knows absolutely nothing about encodings.
>
> All I had to do to get rid of your 30 lines of "BOM skipping" code was change the file loading part to this:
>
> ```
> List := TStringList.Create;
> List.LoadFromFile(FFileName, TEncoding.UTF8);
> Stream := TStringStream.Create(List.Text, TEncoding.UTF8, False);
> List.Free;
> Stream.Position := 0;
> ```
>
> And then continue by creating the TJSONParser from `Stream`. Doing it that way works correctly BOM or no BOM.

Okay, I recognize that I've been a bit unfair in the previous message but remember that this constructor overload does not exist yet in the freepascal library version 3.0.4, so I could not use it, hence those 30 lines had to be written.
April 11, 2020
Dear Sir, I am following your instructions on how to compile and build Dexed on Windows 10. Could you please help me find out why I get the following error?

C:\temp\dexed-v3.8.3\lazproj>lazbuild -B dexeddesigncontrols.lpk
Hint: (lazarus) Missing state file of DexedDesignControls 0.0: C:\temp\dexed-v3.8.3\lazproj\lib\x86_64-win64\DexedDesignControls.compiled
Info: (lazarus) Execute Title="Compile package DexedDesignControls 0.0"
Info: (lazarus) Working Directory="C:\temp\dexed-v3.8.3\lazproj\"
Info: (lazarus) Executable="C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe"
Info: (lazarus) Param[0]="-B"
Info: (lazarus) Param[1]="-MObjFPC"
Info: (lazarus) Param[2]="-Scghi"
Info: (lazarus) Param[3]="-O2"
Info: (lazarus) Param[4]="-g"
Info: (lazarus) Param[5]="-gl"
Info: (lazarus) Param[6]="-l"
Info: (lazarus) Param[7]="-venhibq"
Info: (lazarus) Param[8]="-vw-"
Info: (lazarus) Param[9]="-FuC:\temp\dexed-v3.8.3\src"
Info: (lazarus) Param[10]="-FuC:\lazarus\packager\units\x86_64-win64"
Info: (lazarus) Param[11]="-FuC:\lazarus\components\lazutils\lib\x86_64-win64"
Info: (lazarus) Param[12]="-FuC:\lazarus\lcl\units\x86_64-win64"
Info: (lazarus) Param[13]="-FuC:\lazarus\lcl\units\x86_64-win64\win32"
Info: (lazarus) Param[14]="-FuC:\temp\dexed-v3.8.3\lazproj\"
Info: (lazarus) Param[15]="-FUC:\temp\dexed-v3.8.3\lazproj\lib\x86_64-win64\"
Info: (lazarus) Param[16]="-dLCL"
Info: (lazarus) Param[17]="-dLCLwin32"
Info: (lazarus) Param[18]="dexeddesigncontrols.pas"
Hint: (11030) Start of reading config file C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.cfg
Hint: (11031) End of reading config file C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.cfg
Free Pascal Compiler version 3.0.4 [2019/10/27] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Win64 for x64
(3104) Compiling dexeddesigncontrols.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_dsgncontrols.pas
C:\temp\dexed-v3.8.3\src\u_dsgncontrols.pas(48,29) Hint: (5024) Parameter "sender" not used
C:\temp\dexed-v3.8.3\src\u_dsgncontrols.pas(49,30) Hint: (5024) Parameter "sender" not used
C:\temp\dexed-v3.8.3\src\u_dsgncontrols.pas(50,32) Hint: (5024) Parameter "sender" not used
C:\temp\dexed-v3.8.3\src\u_dsgncontrols.pas(52,34) Hint: (5024) Parameter "sender" not used
C:\temp\dexed-v3.8.3\src\u_dsgncontrols.pas(51,31) Hint: (5024) Parameter "sender" not used
(1008) 380 lines compiled, 0.8 sec
(1022) 7 hint(s) issued

C:\temp\dexed-v3.8.3\lazproj>lazbuild -B dexed.lpi
TProject.DoLoadStateFile Statefile not found: C:\temp\dexed-v3.8.3\lazproj\lib\x86_64-win64\dexed.compiled
Info: (lazarus) Execute Title="Compile Project, Mode: Release, Target: C:\temp\dexed-v3.8.3\bin\dexed.exe"
Info: (lazarus) Working Directory="C:\temp\dexed-v3.8.3\lazproj\"
Info: (lazarus) Executable="C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe"
Info: (lazarus) Param[0]="-B"
Info: (lazarus) Param[1]="-MObjFPC"
Info: (lazarus) Param[2]="-Scghi"
Info: (lazarus) Param[3]="-CX"
Info: (lazarus) Param[4]="-O3"
Info: (lazarus) Param[5]="-XX"
Info: (lazarus) Param[6]="-WG"
Info: (lazarus) Param[7]="-l"
Info: (lazarus) Param[8]="-vewnibq"
Info: (lazarus) Param[9]="-vh-"
Info: (lazarus) Param[10]="-vm5024"
Info: (lazarus) Param[11]="-FiC:\temp\dexed-v3.8.3\lazproj\lib\x86_64-win64"
Info: (lazarus) Param[12]="-FuC:\temp\dexed-v3.8.3\src"
Info: (lazarus) Param[13]="-FuC:\temp\dexed-v3.8.3\etc\terminal"
Info: (lazarus) Param[14]="-FuC:\lazarus\components\tachart\lib\x86_64-win64\win32"
Info: (lazarus) Param[15]="-FuC:\lazarus\components\rtticontrols\lib\x86_64-win64\win32"
Info: (lazarus) Param[16]="-FuC:\lazarus\components\ideintf\units\x86_64-win64\win32"
Info: (lazarus) Param[17]="-FuC:\lazarus\components\synedit\units\x86_64-win64\win32"
Info: (lazarus) Param[18]="-FuC:\lazarus\components\lazcontrols\lib\x86_64-win64\win32"
Info: (lazarus) Param[19]="-FuC:\temp\dexed-v3.8.3\lazproj\lib\x86_64-win64"
Info: (lazarus) Param[20]="-FuC:\lazarus\components\anchordocking\lib\x86_64-win64"
Info: (lazarus) Param[21]="-FuC:\lazarus\lcl\units\x86_64-win64\win32"
Info: (lazarus) Param[22]="-FuC:\lazarus\lcl\units\x86_64-win64"
Info: (lazarus) Param[23]="-FuC:\lazarus\components\lazutils\lib\x86_64-win64"
Info: (lazarus) Param[24]="-FuC:\lazarus\packager\units\x86_64-win64"
Info: (lazarus) Param[25]="-FuC:\temp\dexed-v3.8.3\lazproj\"
Info: (lazarus) Param[26]="-FUC:\temp\dexed-v3.8.3\lazproj\lib\x86_64-win64\"
Info: (lazarus) Param[27]="-FEC:\temp\dexed-v3.8.3\bin\"
Info: (lazarus) Param[28]="-oC:\temp\dexed-v3.8.3\bin\dexed.exe"
Info: (lazarus) Param[29]="-dLCL"
Info: (lazarus) Param[30]="-dLCLwin32"
Info: (lazarus) Param[31]="-dRELEASE"
Info: (lazarus) Param[32]="dexed.lpr"
Compiling Release Version
Free Pascal Compiler version 3.0.4 [2019/10/27] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Win64 for x64
(3104) Compiling dexed.lpr
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_sharedres.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_observer.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_common.pas
Warning: (5059) Function result variable does not seem to initialized
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_libman.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_writablecomponent.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_dcd.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_interfaces.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_synmemo.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_d2syn.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_dlangutils.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_dlangmaps.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_txtsyn.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_dialogs.pas
(3104) Compiling C:\temp\dexed-v3.8.3\src\u_dastworx.pas
C:\temp\dexed-v3.8.3\src\u_dastworx.pas(92,9) Error: (5000) Identifier not found "dlgOkError"
C:\temp\dexed-v3.8.3\src\u_dastworx.pas(103,9) Error: (5000) Identifier not found "dlgOkError"
u_dastworx.pas(199) Fatal: (10026) There were 2 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: C:\lazarus\fpc\3.0.4\bin\x86_64-win64\ppcx64.exe returned an error exitcode
Error: (lazarus) Compile Project, Mode: Release, Target: C:\temp\dexed-v3.8.3\bin\dexed.exe: stopped with exit code 1
Error: (lazbuild) failed compiling of project C:\temp\dexed-v3.8.3\lazproj\dexed.lpi


I am using the last Lazarus 2.0.6 with FPC 3.0.4, on a Win10 64 machine
April 24, 2020
On Saturday, 11 April 2020 at 14:05:43 UTC, RegeleIONESCU wrote:
> Dear Sir, I am following your instructions on how to compile and build Dexed on Windows 10. Could you please help me find out why I get the following error?
>
> [...]

Sorry I don't know how I've managed to miss your message since the 11. Maybe it's because the topic was more about Akira's fork originally.
The compiler error message means that u_dastworx is missing in the "use" clause (it's like D imports). You can try to add it by editing u_dastworx.pas.

> Fatal: (1018) Compilation aborted
> Error: C:\lazarus\fpc\3.0.4\bin\x86_64-win64\ppcx64.exe returned an error exitcode
> Error: (lazarus) Compile Project, Mode: Release, Target: C:\temp\dexed-v3.8.3\bin\dexed.exe: stopped with exit code 1
> Error: (lazbuild) failed compiling of project C:\temp\dexed-v3.8.3\lazproj\dexed.lpi
>
> [...]

Note that the problem wont be fixed.

1. next version, v3.9.0, doesn't use dastworx anymore but rather a library, compiled with LDC.
2. I don't support Windows anymore so people have to submit their fixes if they want dexed to continue working on Windows. This can be done by sending me patches by email (clone the gitlab project, look at the git history to find my mail) or gitlab merge_requests.
April 24, 2020
On Friday, 24 April 2020 at 08:44:10 UTC, Basile B. wrote:
> On Saturday, 11 April 2020 at 14:05:43 UTC, RegeleIONESCU wrote:
>> Dear Sir, I am following your instructions on how to compile and build Dexed on Windows 10. Could you please help me find out why I get the following error?
>>
>> [...]
>
> Sorry I don't know how I've managed to miss your message since the 11. Maybe it's because the topic was more about Akira's fork originally.
> The compiler error message means that u_dastworx is missing in the "use" clause (it's like D imports). You can try to add it by editing u_dastworx.pas.
>
>> Fatal: (1018) Compilation aborted
>> Error: C:\lazarus\fpc\3.0.4\bin\x86_64-win64\ppcx64.exe returned an error exitcode
>> Error: (lazarus) Compile Project, Mode: Release, Target: C:\temp\dexed-v3.8.3\bin\dexed.exe: stopped with exit code 1
>> Error: (lazbuild) failed compiling of project C:\temp\dexed-v3.8.3\lazproj\dexed.lpi
>>
>> [...]
>
> Note that the problem wont be fixed.
>
> 1. next version, v3.9.0, doesn't use dastworx anymore but rather a library, compiled with LDC.
> 2. I don't support Windows anymore so people have to submit their fixes if they want dexed to continue working on Windows. This can be done by sending me patches by email (clone the gitlab project, look at the git history to find my mail) or gitlab merge_requests.

I think that this might work fine actually. On linux I've just updated LDC and linking the new library doesn't require anything to be moved thanks to  "-link-defaultlib-shared=false"

so after clonig master, installing Laz and FPC

1. Have the path to ldc binaries in your PATH env variable
2. $ lazbuild -B dexeddesigncontrols.lpk
3. $ lazbuild -B dexed.lpi

should be enough.
At the beginning of step 3, DUB is automatically called to build the library.

on linux the shortcut to dexed must now include a special env change so that the shell sees the library. For example, the "Exec" value of the .desktop file should be

  env LD_LIBRARY_PATH=<path to dexed bin> <path to dexed bin>/dexed

mine concrectly is

  env LD_LIBRARY_PATH=~/dev/projects/dexed/bin ~/dev/projects/dexed/bin/dexed

on windows I think that a dll is still detected when it stands in the same folder as the exe requiring it. To be verified.

Everything is up to date here : https://basile.b.gitlab.io/dexed/build.html
It just that nobody has tested if the windows version is still ok.
1 2 3
Next ›   Last »