Author Topic: LarsenCommander - new test version  (Read 87438 times)

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5544
  • Karma: +49/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: LarsenCommander - new test version
« Reply #45 on: February 26, 2025, 01:20:11 pm »
Ouch, I don't have access to the source code at netlabs :-(.
It this one? https://trac.netlabs.org/openjfs/browser#branches
I can watch it without being logged on. Maybe it was the upppercase on the URL.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Andi B.

  • Hero Member
  • *****
  • Posts: 935
  • Karma: +17/-2
    • View Profile
Re: LarsenCommander - new test version
« Reply #46 on: February 26, 2025, 01:54:30 pm »
Ouch, I don't have access to the source code at netlabs :-(.
It this one? https://trac.netlabs.org/openjfs/browser#branches
I can watch it without being logged on. Maybe it was the upppercase on the URL.

Regards

I was at the main trac page and even logged in and did not found the usual 'source code' button. Just found out netlabs has 2 jfs projects. One jfs another openjfs. I was here - https://trac.netlabs.org/jfs while correct link should be - https://trac.netlabs.org/openjfs/.

Last check in seems to were 21 years ago. Not sure how much of this old code is still in use. Thanks anyway.

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5544
  • Karma: +49/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: LarsenCommander - new test version
« Reply #47 on: February 26, 2025, 05:23:14 pm »
Hi
I was at the main trac page and even logged in and did not found the usual 'source code' button. Just found out netlabs has 2 jfs projects. One jfs another openjfs. I was here - https://trac.netlabs.org/jfs while correct link should be - https://trac.netlabs.org/openjfs/.

Last check in seems to were 21 years ago. Not sure how much of this old code is still in use. Thanks anyway.

I get it now.
- OpenJFS is based in GPL code released by IBM. IBM released JFS under the GPL license to be merge with Linux.
- JFS. Is the IBM driver for OS/2 and it is evolution that is under... I have no idea.. possible under the IBM DDK license that is incompatible with open source. IBM DDK license allows you to create a freeware driver binary, but does not allow you to publicly share the source code. What can be done with this license (as an alternative) it to have a collaborative close source project with one organization (like Netlabs) taking the ownership of the changes, and every contributor should agree to the IBM DDK.

Sorry of the long license story.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5605
  • Karma: +141/-1
    • View Profile
Re: LarsenCommander - new test version
« Reply #48 on: February 26, 2025, 05:40:15 pm »
There's also https://github.com/OS2World/DRV-JFS-GPL which is the 1st IBM release of the GPL code and contains the OS/2 branch. Likely OpenJFS is based on this.

Lars

  • Hero Member
  • *****
  • Posts: 1474
  • Karma: +74/-0
    • View Profile
Re: LarsenCommander - new test version
« Reply #49 on: February 26, 2025, 07:58:10 pm »
Here is code to prove it works at least with JFS (I have all my files on JFS partitions):

Code: [Select]
#define INCL_BASE
#include <os2.h>
#include <stdio.h>

#define FIL_QUERYALLEAS 4

#define BUFSIZE 1024UL * 128


int main(int argc,char *argv[])
{
   EAOP2 eaop={0};
   PFEA2 pFEA = NULL;
   ULONG oNextEntryOffset;
   APIRET rc = NO_ERROR;
   ULONG i=0;
   PUCHAR pHexValueByte = NULL;

   if (argc != 2) {
      return 1;
   } /* endif */

  rc = DosAllocMem((PPVOID)&eaop.fpFEA2List,BUFSIZE,PAG_COMMIT | PAG_READ | PAG_WRITE);

  if (NO_ERROR == rc) {
     eaop.fpFEA2List->cbList = BUFSIZE;
     rc = DosQueryPathInfo(argv[1],FIL_QUERYALLEAS,&eaop,sizeof(eaop));
     if (NO_ERROR == rc && eaop.fpFEA2List->cbList > sizeof(eaop.fpFEA2List->cbList)) {
        pFEA = eaop.fpFEA2List->list;
        do {
           oNextEntryOffset = pFEA->oNextEntryOffset;
           printf("Name:%s,Value:",pFEA->szName);
           pHexValueByte = pFEA->szName+sizeof(UCHAR)+pFEA->cbName;
           for (i=0;i<pFEA->cbValue;i++,pHexValueByte++ ) {
              printf("%.2x ",*pHexValueByte);
           } /* endfor */
           printf("\n");
           pFEA = (PFEA2)((PCHAR)pFEA + oNextEntryOffset);
        } while (oNextEntryOffset  ); /* enddo */
     } /* endif */
     rc = DosFreeMem(eaop.fpFEA2List);
  } /* endif */

  return 0;
}

Pass it a filename and it will print out the EA info as hex bytes (not awfully helpful, obviously but you can crosscheck with what the WPS displays).
« Last Edit: February 26, 2025, 08:02:00 pm by Lars »

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1459
  • Karma: +34/-0
    • View Profile
Re: LarsenCommander - new test version
« Reply #50 on: April 05, 2025, 10:39:33 pm »
Hello Andi,

Sorry about the long delay in providing my feedback!

I've just released v1.09.00. See https://sourceforge.net/projects/lcmd-git/files/

Code: [Select]
Change History:
---------------
20250222 v1.9.0
- Skip sending lot of GUI (PM) messages for updating progress dialog with fast disks while copying and deleting files.
This is to work around PM memory leaks (crashes) when hammered with very much messages in a short period of time.
With fast disks copying or deleting small files takes few ms or even less. The previous logic to update the
progress bar after each file (and during a file when it is bigger) is changed to not send more than about one
message in 125ms. PM seems to be not safely ignore to much unhandled messages and starts to eat up shared memory.
Eventually this crashes the whole system when the process is not closed before. F.i. this skipps more than 69000
messages when copying the ApacheOpenOffice source code tree. The same skipping logic improves speed when deleting lot
of files. F.e. 33s instead 53s for AOO source code tree (about 70k files). More than 76000 messages where skipped with
that new delete logic.

Alright...this is by far my favourite file manager, so I do put it through it's fair share of paces.

Everything seems to be alright with the exception of the fact that the 'Bytes per second' window no longer shows the graphical throughput rate as the file copy progresses.

I repeated my file copy/move several times (between different SOURCE=>TARGET combinations and this is consistent.

So I left the above section of your post purposely because I now wonder if perhaps the "...Skip sending lot of GUI (PM) messages..." is the root cause of this???

Othwerise, things are good...thank you again for maintaning this !!!

Andi B.

  • Hero Member
  • *****
  • Posts: 935
  • Karma: +17/-2
    • View Profile
Re: LarsenCommander - new test version
« Reply #51 on: April 13, 2025, 11:47:39 am »
Quote
Everything seems to be alright with the exception of the fact that the 'Bytes per second' window no longer shows the graphical throughput rate as the file copy progresses.

Good catch. I wonder why I've overlooked this. Needs investigation.

Andi B.

  • Hero Member
  • *****
  • Posts: 935
  • Karma: +17/-2
    • View Profile
Re: LarsenCommander - new test version
« Reply #52 on: December 06, 2025, 05:47:50 pm »
Dariusz wrote -
Quote
....
'Bytes per second' window no longer shows the graphical throughput rate
....
So I left the above section of your post purposely because I now wonder if perhaps the "...Skip sending lot of GUI (PM) messages..." is the root cause of this???
I'm pretty sure you are completely right on this. Recently I copied a lot of stuff to a NAS samba share and sometimes the speed counter were updated. Currently I'm not sure about the internal logic of this display element. I'm not sure if I can make it work again cause my 'message skipping' logic is on a rather low level where I may not be able to selectively filter (or allow) them easily.

Anyway if I ever find the time for more LCMD work first would be reworking of EA handling during copy. I had a few full system hangs (most probably JFS problem, see above) when I wanted to copy >100GB of data. Only wanted to say thanks for all the testing and giving a sign that I'm still alive ;-) Although don't doing much OS/2 programming stuff anymore.

Btw. copying on Linux isn't that solid too. I tried at least 3 file manager there (Caja, Nemo, ??, ??) until I came across Dolphin. The others are toys not capable of copying huge amount of files too. Always though before a Linux (Debian) box is made for real work. But especially on the GUI stuff there seems to be a lot of amateur programmers. And our well known problems with unresponsive network shares (WPS hangs or long timeouts) exist to some extend on Linux too. Even with NFS shares which I thought is their native and preferred network sharing protocol :-(.