[texworks] New version 302/303

Jonathan Kew jfkthame at googlemail.com
Sat Jun 6 18:27:22 CEST 2009


On 6 Jun 2009, at 16:44, T T wrote:

> On 06/06/2009, Alain Delmotte <esperanto at swing.be> wrote:
>> Ok the new build 306 is available on my site.
>
> Thanks.
>
>> But making a test: there is an error *both* with and without any
>> information for the path in the typesetting preference.
>> I mean in 303, when there was something for the path, it worked,  
>> without
>> not; now it's not working at all.
>
> Bummer. Unfortunately I have to confirm that. This makes rev.306
> unusable on Windows.

Indeed. :(

>>> setDefaultPaths doesn't care whether tex (or anything else) is
>>> actually present in the predefined paths; it just returns the list  
>>> of
>>> paths, it's the typeset() function that will look for tools.
>
> Right, setDefaultPaths doesn't look for tex but it removes nonexistent
> dirs from the list. If none of the predefined defaults exists, then
> the returned list will be empty.

True, though (a) an empty list should still be valid for the purpose  
of adding the dirs from PATH; and (b) when defaultbinpaths isn't  
provided, the built-in defaults should include the dir where texworks  
itself is located, so at least that one probably exists!

>>>> If the return value is @Invalid() as for
>>>> binaryPaths, then we have the same problem.
>>>
>>> setDefaultPaths shouldn't ever be returning an empty list, though  
>>> even
>>> if it does, an empty list ought to be harmless.
>
> Are you sure? From my tests it looks like the problem occurs *only* if
> binaryPaths is an empty list.

Yes, so it seems, but I am still mystified by it.

> Perhaps this @Invalid() in .ini file
> indicates an empty value, but I would expect something like @Empty()
> rather than @Invalid(). Could you check what gets written to
> texworks.ini on Linux when you clear the search list in preferences?
> If it is something different then maybe we are onto something.

It writes @Invalid().

>>>> Note that the original PATH is repeated twice in the one passed  
>>>> to the
>>>> spawned process, which should not happen, because of the condition
>>>> (see above):
>>>>
>>>>    if (!binPaths.contains(s))  binPaths.append(s);
>>>>
>>>> So something is not right here.
>>>
>>> Rev 303 did not include that condition, it unconditionally added the
>>> PATH in typeset(). This was revised in r.306. So this part, at  
>>> least,
>>> is not a mystery.
>
> Right, my mistake. But it seems that those changes made things  
> worse. But why?

I don't know; they were supposed to be better! I guess it's time for  
me to try a Windows build and see if I can track down what's going  
wrong; this stuff seems to work fine on the other platforms.

> Hmmm, I think I will have to finally bite the bullet and get some
> build system of the ground. I just don't have the time to chase up all
> those dependencies... Any chances of providing a build system bundling
> everything necessary to build TW? That would certainly encourage more
> people to play with it, especially on Windows.

If someone would like to do this, it'd be fine with me; I don't have  
the time or expertise to provide such a build system myself. The page  
at http://code.google.com/p/texworks/wiki/BuildingOnWindows gives some  
guidance that may help.

>
> Cheers,
>
> Tomek
>
> PS. For previous revisions defaultbinpaths works if coma is used as
> the path separator instead of semicolon. That's the consequence of
> using `toStringList' method to convert it.

That makes sense, though it wasn't intended to be that way!

Thanks,

JK



More information about the texworks mailing list