jed-users mailing list

[2025 Date Index] [2025 Thread Index] [Other years]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]

Re: [jed-users] new_process() can't handle input file > 65536 bytes?


Yeah, but likely a system pipe buffer size.

On Sun, Jun 29, 2025, 16:10 Roland Hughes <roland@xxxxxxxxxxxxxxxxxxxx>
wrote:

> Color me confused.
>
> If he deletes one line from the scratch buffer of 65537 lines it works.
>
> If the buffer is 65537 (or presumably greater) it doesn't.
>
> How does it work with just one line less if cat is always waiting for
> input?
>
> It's okay to say I'm an imbecile here. I'm desperately trying to get all
> of the page breaks and numbers into a new novel that will hopefully be
> available for sale prior to the fourth, so might have missed something.
> It sure sounded like he ran headlong into a hard coded 64K buffer size
> somewhere.
>
> On 6/29/2025 2:44 PM, John E. Davis wrote:
> > Morten Bo Johansen <mbj@xxxxxxxxx> wrote:
> >> If you have the time, then create a file, "t", of 65537 bytes
> >>
> >>     $ for i in {1..65537}; do echo -n a >> t; done
> >>
> >> In a *scratch* buffer, insert the following lines:
> >>
> >>     require("process");
> >>     variable obj = new_process(["cat"]; write=1, stdin="t");
> >>     () = obj.wait();
> > The issue here is that the "cat" process is waiting for you to read
> > the data.  For example, add
> >
> >     () = fgets (&str, obj.fp1);
> >
> > before calling the wait method.  If you want the output of cat to go
> > to stdout, then omit the write=1 qualifier.  From the documentation:
> >
> >     write=fds
> >
> >      fds is a list of integer file descriptors that are open for write
> >      access in the subprocess, and may be read to by the calling
> >      process using the fdN or fpN fields of the structure.
> > [...]
> >    Mimic popen(pgm, "r"):
> >
> >     obj = new_process (pgm; write=1);   % Read from obj.fp1
> >
> > I hope this helps,
> > --John
> >
> >
> >> and then:
> >>
> >>     alt-x evalbuffer
> >>
> >> In my case the process hangs/freezes.
> >>
> >> If I remove one single 'a' from the file "t" to make the size 65536
> bytes,
> >> then it completes.
> >>
> >> Is it a case of some integer data type somewhere in the slang source
> files
> >> that should be changed or is it just me who don't know what I'm doing?
> >>
> >> Regards,
> >> Morten
> >> _______________________________________________
> >> For list information, visit <http://jedsoft.org/jed/mailinglists.html>.
> >>
> > _______________________________________________
> > For list information, visit <http://jedsoft.org/jed/mailinglists.html>.
> >
> --
> Roland Hughes, President
> Logikal Solutions
> (630)-205-1593  (cell)
> https://theminimumyouneedtoknow.com
> https://infiniteexposure.net
> https://johnsmith-book.com
>
> _______________________________________________
> For list information, visit <http://jedsoft.org/jed/mailinglists.html>.
>
>

[2025 date index] [2025 thread index]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]