That's some good spelunking.

That said, I suspect that JHS is a reference to the J HTTP Server
(it's an IDE). http://www.jsoftware.com/jwiki/Guides/JHS/Install

I'm not sure why JHS_z_ would be set to 1 in libjqt.so but perhaps the
intention is to allow the same J session to have both a JHS and a JQt
interface? If the core event handler were designed robustly, that
should be fairly straightforward. (If, on the other hand, JQt imposes
a "framework" then the Qt part would need to be in a separate process,
or perhaps a separate thread, for that to work. I think it might
already be in a separate thread, but I'm not sure if that is
sufficient isolation for J to drive qt and http front ends from the
same session).

Anyways, I suspect that JHS_z_ is not relevant to what you are trying
to deal with here. Nor does it seem like it should in any way be
relevant to regex.ijs.

And, come to think of it, I don't see it referenced in
http://www.jsoftware.com/wsvn/base8/trunk/main/regex/defs.ijs?op=blame&rev=200

So now I'm a bit confused about what you're seeing.

Does this help? Can you make another pass at this?

Thanks,

-- 
Raul


On Sun, Jul 26, 2015 at 7:18 PM,  <[email protected]> wrote:
>> It is correct that deb does not contain libjpcre because deb intended to
>> use stock libpcre. the value of jregcomp is incorrect. I cannot test on
>> raspi right now, please see the init part of the source of jregex why it
>> could not pick up the stock libpcre.
>
> It turns out that the selection of the wrong jregcomp (and others)
> does not happen in the init.ijs part of the regex sources but in the
> defs.ijs part.
>
> In system/main/regex.ijs, line 106 or, source-wise, line 11 in
> http://www.jsoftware.com/wsvn/base8/trunk/main/regex/defs.ijs?op=blame&rev=200
> the check
>
>         if. (0~:FHS) *: 'Linux'-:UNAME do.
>
> incorrectly selects the "then." case.  I'm running stock Debian-"Wheezy"
> on my ARM board, I have
>
>         UNAME -: 'Linux'        NB. looks good to me
>         FHS -: 0                NB. not so sure
>
> It took me a few hours to find where "FHS" is initialized:
>
>         $ strings ijconsole | grep FHS
>         [FHS_z_=:0
>         [FHS_z_=:1
>
>         $ strings libjqt.so  | grep FHS
>         [FHS_z_=:0
>         [FHS_z_=:1
>
> It's sole documentation (as finally found in:
>         http://www.jsoftware.com/wsvn/base8/trunk/main/main/sysenv.ijs
>         http://jsoftware.com/help/user/lib_sysenv.htm):
>
>         NB.*FHS          n filesystem hierarchy: 0=not used  1=linux
>
> is not really clear to me.
>
> Assuming that "FHS" stands for "system obeys the Filesystem Hierarchy
> Standard" I provided a "FHS_z_=:1" definition using jprofilex.ijs.
> This was good for the jconsole but not for jqt.   (I will probably
> NEVER understand the contortions J is going through during startup.)
>
> So as of now, I'm essentially forcing the if. check above into a FALSE,
> making regexps (and the "J by Point and Click" lab) work.
>
>
> And speaking of contortions:   My feeble mind easily gets headaches
> from the NAND of an NON-ZERO and something.  I suggest to resolve the
> nested negatives in [1]:
>
>         if. (0~:FHS) *: 'Linux'-:UNAME do.
>                 A
>         else.
>                 B
>         end.
>
> into this equivalent form [2]:
>
>         if. FHS *. 'Linux'-:UNAME do.
>                 B
>         else.
>                 A
>         end.
>
> And, given the "NB.*FHS" definition above, it makes me wonder if that
> shouldn't be simplified to [3]:
>
>         if. 'Linux'-:UNAME do.
>                 B
>         else.
>                 A
>         end.
>
> FWIW, J Rel. 7 and 8.02 on debian-amd64 have FHS at 0, too, but have
> the libjpcre shared lib provided.  As of now, I'm asking myself which
> platform *ever* used the "B" case, i.e. a libpcreposix.so.3 provided
> by the OS.   Ah, the SVN history can explain that:   prior to the
> current
>
>         if. (0~:FHS) *: 'Linux'-:UNAME do.      Rev. 82 blam, 2013-11-23
>
> it was :
>
>         if. (0=FHS) > 'Linux'-:UNAME do.        Rev. 76 blam, 2013-11-17
>
> This would always (well, for a week) choose the "else" part on Linuxen.
>
>
> The new 2015-07-26 .deb doesn't change anything.  (If I did the "diff -r"
> correctly, only the ijconsole binary was different.  It would be really
> helpful to announce more specific remarks what is supposed to be different
> in new beta builds.)
>
>                                                                 Martin
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to