IIRC they didn't work and were ill-specified and OS-dependent.  I think nothing of value was lost.

If you want the function, either

* define it in a way that it can be implemented in JE with support for all OSs
* make an addon to do it

Henry Rich

On 4/5/2022 1:29 PM, Raul Miller wrote:
On Sun, Apr 3, 2022 at 2:19 PM J. Patrick Harrington <[email protected]> wrote:
Anyway, if there are resources or further information on .wav files
under J  (I've not searched extensively) I'd be interested to learn
about them.
So I started looking at simple approaches to playing wav files from
within J. One of the more obvious approaches has J feeding the wav
file to a program on a pipe.

After a bit of investigation, I found that
https://code.jsoftware.com/wiki/System/ReleaseNotes/J903 states:

"Old foreigns 2!:2 and 2!:3 are removed from the language"

That was support for this kind of thing:

https://en.wikipedia.org/wiki/Pipeline_(Unix)
https://docs.microsoft.com/en-us/windows/win32/procthread/creating-a-child-process-with-redirected-input-and-output
https://developer.apple.com/documentation/foundation/pipe
https://developer.android.com/reference/java/nio/channels/Pipe

Pipes are a mechanism analogous to J's @: but with a few tradeoffs,
and designed for interprocess communication. It seems to be supported
by all current OS hosts for J -- even browsers are starting to
incorporate an approximation of this mechanism: javascript's
Blob.stream().

I can't find any description of why it was removed from the language.

I can't find any effort aimed at replacing this mechanism with library code.

I would like to classify this change as an error that we should repair.

Am I overlooking some critical benefit here?

After poking around in the forums for reasoning which might have lead
to this change, I found this:

http://www.jsoftware.com/pipermail/programming/2018-March/050819.html

If that was the motivation, I need to apologize for my poor choice of
words back then.

But I also found this:

http://www.jsoftware.com/pipermail/beta/2017-April/008775.html

Or: it was broken for some time. And, presumably, tossing it was
easier than fixing it. But, given how slow programming projects are
(where individual projects might take years to complete, with
programmers focussing on small parts of the
whole at any given point in time), I don't think it's meaningful to
equate "broken for a time" with "useless and should be removed".

Quite often when people encounter a broken feature of a language
implementation, they ascribe that to themselves, or to the language
being too complex for them to understand, rather than reporting it as
a bug.

Anyways...

Pipe support is gone from the language, for now. And, maybe we should
have implemented pipe terminals as gerund rather than integers. But I
think we should have pipe support (at least for sequences of
characters) in the language.

Thanks,



--
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to