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

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5254
  • Karma: +44/-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: 911
  • Karma: +16/-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: 5254
  • Karma: +44/-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: 5344
  • Karma: +127/-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: 1423
  • Karma: +72/-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: 1421
  • Karma: +28/-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: 911
  • Karma: +16/-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.