Re: [IE] Re: [grpc-io] Java 8 end of life for gRPC ?

2022-02-22 Thread 'Russell Shaw' via grpc.io
So if we meet our migration target to move application for Z/OS to GCP this
year, then I think we should be fine
Either way, it sound like Java 8 pubsub client will still be fine in the
meantime

*Russell Shaw*
Software Engineer - Career

Acro Database Support
Equifax Inc.

O 470-750-2979 Ext.32444

C 678-243-8579
russell.s...@equifax.com


On Mon, Feb 14, 2022 at 2:37 PM Eric Anderson  wrote:

> On Fri, Jan 28, 2022 at 7:19 AM 'Russell Shaw' via grpc.io
> <https://protect2.fireeye.com/v1/url?k=31323334-501d2dca-313219e2-454455534531-7bbb357ac779b069=1=11374eae-bb20-4b72-8695-dcf9977f35d7=http%3A%2F%2Fgrpc.io%2F>
>  wrote:
>
>> Our company uses Java8 on Z/OS
>
>
> The TL;DR for all this stuff is probably: For Google Cloud users, overall
> I'd expect service-specific issues to crop up more than gRPC compatibility
> issues. For example, if you want to use a new service, the library may only
> support Java 11+. But you really want a plan to upgrade to Java 11 and
> beyond.
>
> Thank you so much for the email. We really do want to hear trouble caused,
> as otherwise there's no feedback loop. Sorry for the delay, your email was
> just brought to my attention.
>
> In your specific case, it looks like IBM's Java 11 was only recently made
> available
> <https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/james-tang1/2021/11/19/ibm-semeru-runtime-certified-edition-for-zos-versi>?
> That's a bit worrisome, as it only buys you 1.5 more years, as end of
> Premier Support of Java 11 is rapidly approaching. I'm going to need to
> keep an eye on that. But you aren't *blocked*, right? It is just "gotta
> move quickly"?
>
> I'll note that practically speaking I doubt we'll actually drop Java 8 in
> March. I mainly wanted people to realize *that we could*, because we
> really need to have these conversations now and then when we delay it is
> perceived as niceness :-). I expect gRPC will wait until ~June before
> dropping Java 8, because dropping Java 8 hasn't been on user's radar until
> recently.
>
> But that may not hold for the rest of the Google client libraries. You as
> a Google Cloud library consumer are intended to be insulated from gRPC, so
> you should really only need to track the Google Cloud libraries.
>
> I am guessing that the final gRPCJava version built via Java 8, will still
>> be able to talk to Pubsub for a while, until the PubSub/gRPC protocols
>> changes enough that it eventually breaks.
>>
>
> In that case Pubsub support policies still apply. See Google's Java
> supported version documentation
> <https://protect2.fireeye.com/v1/url?k=31323334-501d2dca-313219e2-454455534531-4d7a417a3b338587=1=11374eae-bb20-4b72-8695-dcf9977f35d7=https%3A%2F%2Fcloud.google.com%2Fjava%2Fdocs%2Fsupported-java-versions>
> .
>
> gRPC v1.44.0 is still compatible with v1.0.0. A backward incompatible
> change would be a big deal and probably need a multi-year migration
> process. I know of no features currently discussed that would need to break
> the protocol. (Sure, a new feature may need both sides to be upgraded *to
> be used*, but then you just wouldn't benefit from the feature.) I
> wouldn't be concerned about protocol breakages in the low-single-digit
> years time frame.
>
> There could, however, be behavior changes which don't impact correctness
> but could impact performance or similar. This is less likely about gRPC
> specific implementation but instead the HTTP/2 ecosystem or auth or
> $SOME_OTHER_NON_GRPC_BUT_RELATED topic. These are managed by the Google
> service support policies. Google will almost certainly try to avoid these,
> but if something crops up you'd go through the Google support processes.
> Not speaking authoritatively, but if there's a case of 1-5% performance
> decrease, then that just may be the price paid. But something like a 75%
> decrease is more like a service deprecation with notifications, etc. Google
> can track usage of the old versions via the User-Agent.
>
> Is there any Google Cloud Platform information on "no longer supported"
>> versions of Pubsub / grpcjava  jars / cloud-boms? I can't find it mentioned.
>>
>
> I thought I had seen something about library versions being supported for
> a year, but it might be in support contracts or similar non-public
> documentation, or I just may be wrong. The Java version support policy does
> clearly define that the Java 7 releases are best effort. I'd expect Java 8
> to be included in that when it reaches its EOL.
>

-- 
This message contains proprietary information from Equifax which may be 
confidential. If you are not an intended recipient, please refrain from any 
disclosure, copying, distribution or use of this information and note that 
su

[grpc-io] Java 8 end of life for gRPC ?

2022-01-28 Thread 'Russell Shaw' via grpc.io
Regarding the below comment in recent release notes..

"Java 8 users pay note: per gRFC P5, gRPC may drop Java 8 support as soon
as March this year. If this is expected to cause undue hardship or
community issues, please contact us via a GitHub issue or
grpc-io@googlegroups.com
<https://protect2.fireeye.com/v1/url?k=31323334-501d2dca-313219e2-454455534531-dfcff0d256759d70=1=faeeed93-cb38-4ee5-99f9-66403283ead0=https%3A%2F%2Fgroups.google.com%2Fg%2Fgrpc-io>
."

Our company uses Java8 on Z/OS, and uses Google PubSub (which internally
uses gRPCJava) to send to GCP cloud environments.

I am guessing that the final gRPCJava version built via Java 8, will still
be able to talk to Pubsub for a while, until the PubSub/gRPC protocols
changes enough that it eventually breaks.
What are the chances of this happening ?
ie Are the protocols basically set and therefore won't break ?

Is there any Google Cloud Platform information on "no longer supported"
versions of Pubsub / grpcjava  jars / cloud-boms? I can't find it mentioned.

Cheers, Russell

*Russell Shaw*
Software Engineer - Career

Acro Database Support
Equifax Inc.

O 470-750-2979 Ext.32444

C 678-243-8579
russell.s...@equifax.com

-- 
This message contains proprietary information from Equifax which may be 
confidential. If you are not an intended recipient, please refrain from any 
disclosure, copying, distribution or use of this information and note that 
such actions are prohibited. If you have received this transmission in 
error, please notify by e-mail postmas...@equifax.com 
<mailto:postmas...@equifax.com>. Equifax® is a registered trademark of 
Equifax Inc. All rights reserved.









-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAMBh4745FkUJMkqGSzN5wCjkpoSnMgyGyb24DW9eET-wmh77gQ%40mail.gmail.com.


Re: static class member as interrupt handler works, but not if class is templated

2021-04-10 Thread Russell Shaw

On 11/4/21 8:36 am, Trampas Stern wrote:

Actually C++ is not slower or more bloat than C, depending on the features used.

For example I do not use RTTI or exceptions, so that makes it about the same as 
C for size. Yes you have to turn these features off in your compiler (-fno-rtti, 
-fno-exceptions).  Sure you have trampolines or jump tables for function 
overloading but you have to do the same in C. If you do not use inheritance or 
function overloading you do not have the penalty.


Function overloading is a compile-time concept, but the result after name scope 
flattening are simple function names that are called without any extra pointer 
indirections (ie, no different than C).


C++ is as efficient as C only if what is written translates to the equivalent 
form. This is easy to do, but only after a large hurdle of understanding how C++ 
compilers work.


The biggest shortcoming in the C++ "industry" is that there is no literature i 
have seen that explains in a compact way how you can look at a piece of C++ code 
and see how it would translate to the equivalent assembly, which is the main 
advantage of C.




Re: Future plans for Autotools

2021-01-21 Thread Russell Shaw

On 21/1/21 9:15 am, Zack Weinberg wrote:

Now we've all had a while to recover from the long-awaited Autoconf
2.70 release, I'd like to start a conversation about where the
Autotools in general might be going in the future.  Clearly any future
development depends on finding people who will do the work, but before
we worry about that I think we might want to figure out what work we
_want_ to do.

...

Agree with all that.

The biggest problem i had that wasted the most time is that none of the 
documentation gave a good overview of the sequence of steps the main 
perl script did to process the files and produce the output, and 
intermediate files involved. Using a language like C++ where a 
step-by-step debugger like gdb can be used would have been good.


Having a nuts and bolts low level detail of how it all works makes one 
much more productive. I'm talking of real software engineering ppl that 
understand compilers and not programmers that are really artist dabbling 
users. It is the real engineers that are more motivated to understand 
and be contributors.


As a result, i only gradually got proficient over a few years, and 
having to comprehend a large manual on ancient shell variants and study 
M4 didn't help.


M4 is easy if there's a decent tutorial readily available. Currently one 
needs to download other manuals and tutorials to get a good idea of it, 
and it's a big step for starting programmers.


I understand mostly how things work, but got bogged down in 
understanding the perl script. If i mastered it all, i'd think more 
about what can be changed or improved.


I did one early iteration of a tool that did the functions of 'make' 
using an input description of the files one wanted in a project. It also 
had its own shell implementation. Users would need a copy of that shell 
installed. An idea was to have the users script automatically build and 
install the shell in a location the user or system dictated. Another 
option was an automatic download from a trusted place.


I could get more done if i had another go at it, but i'm too busy on a 
different tool.


If GNU paperwork gets in the way, just bypass it and release new stuff 
as BSD. Then it's truly free.




Re: determine base type of a typedef

2020-10-23 Thread Russell Shaw

On 23/10/20 6:06 pm, Russell Shaw wrote:

On 23/10/20 5:54 pm, Anatoli wrote:

Russell,

Thanks for your suggestion. The problem is, as I mentioned in the initial
post, on amd64 sizeof(time_t) is always 8 bytes, as well as long and long
long, so sizeof(time_t) == sizeof(long int) == sizeof(long long int).

I've actually tried the following directly in configure.ac (for this test
it's not needed to run a custom code):

#if (SIZEOF_TIME_T == SIZEOF_LONG_LONG_INT) #define TIME_T_FMT "%lld" #elif
(SIZEOF_TIME_T == SIZEOF_LONG) #define TIME_T_FMT "%ld" #else #error dont
know what to use for TIME_T_FMT #endif

But both checks are true so it makes no sense.

I need something that would not depend on the size of the type. Not sure it's
even possible.

I might be missing something simple because i got up too early.

If a platform has time_t the same size as a long and long long, does it matter 
whether the printf uses "%ld" or "%lld" ?


[For GNU C this is "the same" as both are of 8 bytes, but clang generates a 
warning like: "warning: format specifies type 'long' but the argument has type 
'time_t' (aka 'long long')".]


I see that is the actual problem.

If the compiler complains, then maybe you could capture that complaint output.

Bit of a messy test.



Re: determine base type of a typedef

2020-10-23 Thread Russell Shaw

On 23/10/20 6:06 pm, Russell Shaw wrote:

On 23/10/20 5:54 pm, Anatoli wrote:

Russell,

Thanks for your suggestion. The problem is, as I mentioned in the initial
post, on amd64 sizeof(time_t) is always 8 bytes, as well as long and long
long, so sizeof(time_t) == sizeof(long int) == sizeof(long long int).

I've actually tried the following directly in configure.ac (for this test
it's not needed to run a custom code):

#if (SIZEOF_TIME_T == SIZEOF_LONG_LONG_INT) #define TIME_T_FMT "%lld" #elif
(SIZEOF_TIME_T == SIZEOF_LONG) #define TIME_T_FMT "%ld" #else #error dont
know what to use for TIME_T_FMT #endif

But both checks are true so it makes no sense.

I need something that would not depend on the size of the type. Not sure it's
even possible.

I might be missing something simple because i got up too early.

If a platform has time_t the same size as a long and long long, does it matter 
whether the printf uses "%ld" or "%lld" ?


[For GNU C this is "the same" as both are of 8 bytes, but clang generates a 
warning like: "warning: format specifies type 'long' but the argument has type 
'time_t' (aka 'long long')".]


I see that is the actual problem.



Re: determine base type of a typedef

2020-10-23 Thread Russell Shaw

On 23/10/20 5:54 pm, Anatoli wrote:

Russell,

Thanks for your suggestion. The problem is, as I mentioned in the initial
post, on amd64 sizeof(time_t) is always 8 bytes, as well as long and long
long, so sizeof(time_t) == sizeof(long int) == sizeof(long long int).

I've actually tried the following directly in configure.ac (for this test
it's not needed to run a custom code):

#if (SIZEOF_TIME_T == SIZEOF_LONG_LONG_INT) #define TIME_T_FMT "%lld" #elif
(SIZEOF_TIME_T == SIZEOF_LONG) #define TIME_T_FMT "%ld" #else #error dont
know what to use for TIME_T_FMT #endif

But both checks are true so it makes no sense.

I need something that would not depend on the size of the type. Not sure it's
even possible.

I might be missing something simple because i got up too early.

If a platform has time_t the same size as a long and long long, does it matter 
whether the printf uses "%ld" or "%lld" ?




Re: determine base type of a typedef

2020-10-22 Thread Russell Shaw



On 23/10/20 9:23 am, Anatoli wrote:

Hi All,

Is there a way to determine with autoconf what's the base type of a typedef?

I'm trying to accomplish the following:

There are standard types time_t, off_t, size_t and similar that are defined
differently on different platforms/OS.

For example, time_t is defined as "long int" on Linux amd64, but as "long
long int" on OpenBSD amd64. So when printing a time_t var with printf & co,
on Linux it's OK to use "%ld" format specifier, but on OpenBSD it should be
"%lld".

You could use an AC_COMPILE thing to run a small bit of C that does something 
like:

int
test(int argc, char **argv)
{
time_t t = -1;

if(t < 0) {
if(sizeof(time_t) == sizeof(int)) {
printf("d");
}
else if(sizeof(time_t) == sizeof(long int)) {
printf("ld");
}
else if(sizeof(time_t) == sizeof(long long int)) {
printf("lld");
}
else {
printf("error");
}
}
else {
if(sizeof(time_t) == sizeof(int)) {
printf("u");
}
else if(sizeof(time_t) == sizeof(long int)) {
printf("lu");
}
else if(sizeof(time_t) == sizeof(long long int)) {
printf("llu");
}
else {
printf("error");
}
}

return 0;
}



Re: How to change the shebang in 'configure' to require Bash

2018-03-20 Thread Russell Shaw

On 20/03/18 22:53, Russell Shaw wrote:

On 20/03/18 21:07, R. Diez wrote:



...
Requiring a POSIX shell in the next version is an improvement, but POSIX is 
too limiting to really help. It is 2018. No wonder so many people want to 
ditch Autoconf!


Autoconf is hard to learn because becoming properly familiar with shell 
programming is hard enough for new shell hackers, let alone figuring out the 
several versions of Bourne-like shells around and their extensions, plus reading 
all that posix standards stuff, then having to read all about and mastering M4.


An alternative way to portability would be to ditch M4 so that everything is 
done directly in a shell that comes with autoconf. The shell could have inbuilt 
functions for the common things needed like regular expressions etc.


I'll need to reword that.

If autoconf'd programs required the end users to have an installation-shell that 
is ported to all systems of interest, then the learning requirements of autoconf 
users should be a lot less.


___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: How to change the shebang in 'configure' to require Bash

2018-03-20 Thread Russell Shaw

On 20/03/18 21:07, R. Diez wrote:



...
Requiring a POSIX shell in the next version is an improvement, but POSIX is too 
limiting to really help. It is 2018. No wonder so many people want to ditch 
Autoconf!


Autoconf is hard to learn because becoming properly familiar with shell 
programming is hard enough for new shell hackers, let alone figuring out the 
several versions of Bourne-like shells around and their extensions, plus reading 
all that posix standards stuff, then having to read all about and mastering M4.


An alternative way to portability would be to ditch M4 so that everything is 
done directly in a shell that comes with autoconf. The shell could have inbuilt 
functions for the common things needed like regular expressions etc.


___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: Ggradebook; request for assistance

2017-02-11 Thread Russell Shaw

On 12/02/17 01:28, Norbert de Jonge wrote:

Hi,

The following is my reply to someone who recently sent me an e-mail
with a modified Ggradebook 0.92 that includes autoconf/automake.

First of all, I sincerely appreciate you looking into it.

What you've created is not quite what I'm looking for.

Please (re)read point #2 in my announcement:
http://lists.gnu.org/archive/html/ggradebook-devel/2017-02/msg1.html

I would like the top level (root directory) to be empty. What
autoconf/automake normally do is mess up the top level. These build
tools require many different (separate) files, and as a result this
programming tool starts dominating - it takes over - the entire package
with its crap. It's very ugly, in my opinion. If all its files cannot
live in their own auto/ directory or something similar, and then
address (talk to) 1 or 2 files in the other directories to get work
done, then I don't want autoconf/automake. Currently, the package uses a
simple Makefile in the src/ directory, and with the exception of "make
install" it's doing the job. I don't want autoconf/automake to make a
mess of this package. It should be happy that I'm willing to give it
its own directory and gets more than a single file. :)

Also, I would like the user to get a warning if their GTK+ or GStreamer
version is _newer_ than what is targeted. GTK+ in particular is a
library that has the potential to create compatibility issues, and
it deprecates functions constantly. I want users to know that any kind
of warnings the application is throwing, or any unintended behavior its
displaying, _may_ be the result of non-matching library versions. My
simple Makefile has a decent implementation of this.

Another problem with your package is the following. This program has
directories with content that it relies on. These directories are
docs/, ogg/ and pix/. If a user runs "make", the executable should be
moved into the parent directory for it to find files in those
directories.

Related to this, and equally important, is that "make install" should
take into account the aforementioned directories and that PKGDATADIR in
the source code should (thus) be respected. In the package you sent me,
there are no autoconf/automake related files in, for example, the ogg/
directory. This suggests to me that autoconf/automake ignores this
directory. I can confirm this suspicion by running "make install",
running the program and then selecting "Help..." from the application's
Help menu. It cannot find the docs/README.txt file.

One last thing. Perhaps autoconf/automake requires this, but... The gcc
commands appears to look for header files in directories that I'm
unfamiliar with. Including, but not limited to,
"/usr/include/at-spi-2.0", "/usr/include/dbus-1.0",
"/usr/include/gio-unix-2.0/", "/usr/include/mirclient" and
"/usr/include/harfbuzz". I'm certain that at least some of those
are not used with my Makefile. Maybe configure.ac is adding unnecessary
headers? I don't know enough about the tool to be sure.

I'm aware that I'm asking for a lot. Especially considering that I'm
hoping someone else will take on and finish this task in its entirety.


Hi,
I'm too busy to go into great detail with everything, but atleast it's a start.
I did it to take a break from the programming i was doing, but one thing for 
certain is that i'm a gtk (and Qt) hater ;)


___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: Autoconf and a bare-metal host with no C library

2016-10-13 Thread Russell Shaw

On 13/10/16 13:11, Luca Saiu wrote:

...
> So, what I'm asking you is: does a clean solution exist, or compiling
> without a runtime library is just not supported by the Autotools?  It
> sounds weird to say that for configuring you need a cross-compiler with
> support for a runtime that will never even be linked when building.
> Shouldn't there be, at least, one variant of AC_PROG_CC which doesn't
> fail in a fatal way?
>
> I'm not yet linking the code in a public forum just because it still
> lacks copyright and license headers; but in case it were useful to you,
> even if I doubt it, I can clean it up and publish it.

It can be messy and take quite some time to figure out what to do, but this kind 
of stuff is handled in the autoconf/automake/autogen build system of binutils 
and gcc. Not a quick and easy path for the uninitiated though.



___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


"inline" using a variable

2016-10-01 Thread Russell Shaw

Hi,
When i "configured" binutils in a directory separate to the source directory, it 
generates a 11500 line Makefile containing the following fragment.


Down the bottom it does:

  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage1;

but "all-stage1" is not in the Makefile. I think it's got something to do with:

stage:
@: $(MAKE); $(stage)

but i don't understand the description below of what that does.


Fragment:

# -
# GCC bootstrap support
# -

# We track the current stage (the one in 'gcc') in the stage_current file.
# stage_last instead tracks the stage that was built last.  These targets
# are dummy when toplevel bootstrap is not active.

# While making host and target tools, symlinks to the final stage must be
# there, so $(unstage) should be run at various points.  To avoid excessive
# recursive invocations of make, we "inline" them using a variable.  These
# must be referenced as ": $(MAKE) ; $(unstage)" rather than "$(unstage)"
# to avoid warnings from the GNU Make job server.

unstage = :
stage = :
current_stage = ""


.PHONY: unstage stage
unstage:
@: $(MAKE); $(unstage)
stage:
@: $(MAKE); $(stage)

# Disable commands for lean bootstrap.
LEAN = false

# We name the build directories for the various stages "stage1-gcc",
# "stage2-gcc","stage3-gcc", etc.

# Since the 'compare' process will fail (on debugging information) if any
# directory names are different, we need to link the gcc directory for
# the previous stage to a constant name ('prev-gcc'), and to make the name of
# the build directories constant as well. For the latter, we use naked names
# like 'gcc', because the scripts in that directory assume it.  We use
# mv on platforms where symlinks to directories do not work or are not
# reliable.

# 'touch' doesn't work right on some platforms.
STAMP = echo timestamp >

# We only want to compare .o files, so set this!
objext = .o


.PHONY: stage1-start stage1-end

stage1-start::
@: $(MAKE); $(stage); \
echo stage1 > stage_current ; \
echo stage1 > stage_last; \
$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@cd $(HOST_SUBDIR); [ -d stage1-bfd ] || \
  mkdir stage1-bfd; \
mv stage1-bfd bfd
@cd $(HOST_SUBDIR); [ -d stage1-opcodes ] || \
  mkdir stage1-opcodes; \
mv stage1-opcodes opcodes
@cd $(HOST_SUBDIR); [ -d stage1-binutils ] || \
  mkdir stage1-binutils; \
mv stage1-binutils binutils
@cd $(HOST_SUBDIR); [ -d stage1-gas ] || \
  mkdir stage1-gas; \
mv stage1-gas gas
@cd $(HOST_SUBDIR); [ -d stage1-intl ] || \
  mkdir stage1-intl; \
mv stage1-intl intl
@cd $(HOST_SUBDIR); [ -d stage1-ld ] || \
  mkdir stage1-ld; \
mv stage1-ld ld
@cd $(HOST_SUBDIR); [ -d stage1-libiberty ] || \
  mkdir stage1-libiberty; \
mv stage1-libiberty libiberty
@[ -d stage1-$(TARGET_SUBDIR) ] || \
  mkdir stage1-$(TARGET_SUBDIR); \
mv stage1-$(TARGET_SUBDIR) $(TARGET_SUBDIR)

stage1-end::
@if test -d $(HOST_SUBDIR)/bfd ; then \
  cd $(HOST_SUBDIR); mv bfd stage1-bfd  ; \
fi
@if test -d $(HOST_SUBDIR)/opcodes ; then \
  cd $(HOST_SUBDIR); mv opcodes stage1-opcodes  ; \
fi
@if test -d $(HOST_SUBDIR)/binutils ; then \
  cd $(HOST_SUBDIR); mv binutils stage1-binutils  ; \
fi
@if test -d $(HOST_SUBDIR)/gas ; then \
  cd $(HOST_SUBDIR); mv gas stage1-gas  ; \
fi
@if test -d $(HOST_SUBDIR)/intl ; then \
  cd $(HOST_SUBDIR); mv intl stage1-intl  ; \
fi
@if test -d $(HOST_SUBDIR)/ld ; then \
  cd $(HOST_SUBDIR); mv ld stage1-ld  ; \
fi
@if test -d $(HOST_SUBDIR)/libiberty ; then \
  cd $(HOST_SUBDIR); mv libiberty stage1-libiberty  ; \
fi
@if test -d $(TARGET_SUBDIR) ; then \
  mv $(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR)  ; \
fi
rm -f stage_current

# Bubble a bug fix through all the stages up to stage 1.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stage1-bubble
stage1-bubble::
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
if test -f stage1-lean  ; then \
  echo Skipping rebuild of stage1 ; \
else \
  $(MAKE) stage1-start; \
  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage1; \
fi


___
Help-make mailing list
Help-make@gnu.org
https://lists.gnu.org/mailman/listinfo/help-make


m4_divert_text

2016-09-14 Thread Russell Shaw

Hi,

In binutils/configure.ac there is:

m4_divert_text([PARSE_ARGS],
[case $srcdir in
  *" "*)
m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
AC_MSG_ERROR([path to source, $srcdir, contains spaces])
m4_popdef([AS_MESSAGE_LOG_FD])dnl
;;
esac
ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
])


I can't find where it's used, and was wondering how one would use this 
definition.

Doesn't the pushdef/popdef pair make it useless?

___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


XPP

2015-01-11 Thread Russell Shaw

Hi,

I use the xpp printing panel which has always been a bit buggy, and recently it 
has become so buggy and crashing as to be unuseable.


It is unmaintained upstream, and also an orphaned package.

https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=xpp#_0_3_4
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=573876

I have fixed all the bugs except #630717 (xpp does not support UTF-8) which i 
could not reproduce.


Do i need to be a Debian maintainer or have a gpg key thing to adopt the 
package?

Do i need to put the new code on a web site?


--
To UNSUBSCRIBE, email to debian-printing-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/54b29c1d.2050...@netspace.net.au



Re: Automate desired resolution at login

2014-01-19 Thread Russell Shaw

On 19/01/14 07:11, j...@askur.org wrote:

When I log into X I seem to have the wrong resolution (My screen: vga
19LCD envision rated at 1440x900). I am able to get around that by typing
the following:

xrandr --newmode 1440x900_60.00  106.50  1440 1528 1672 1904  900 903
909 934 -hsync +vsync
xrandr --addmode VGA-0 1440x900_60.00
xrandr --output VGA-0 --mode 1440x900_60.00

I haven't been able to figure out how to make this happen automatically,
i.e. how to save this as the default mode at login.

If you look at the log excerpt which is attached you see that there are
some modes selected there but I don't know how to change that. I don't
know where those modes came from.

Trying Xorg -configure was unsuccessful due to Number of screens...

Could you make any recommendations or point me in the right direction?


You can put the xrandr commands in ~/.Xsession

___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: [avr-gcc-list] How to initialize an array of struct?

2013-12-14 Thread Russell Shaw

On 15/12/13 17:20, dfx wrote:


Hi,

After spending more than one day to create an array of struct I have
come to this code:

struct Lamp  {
uint8_t highAddress [9] ;
uint8_t lowAddress [9] ;
uint8_t onoff ;
uint8_t active ;
uint8_t power;
uint8_t brightness ;
uint8_t temperatures ;
uint8_t faultCount ;
} ;

struct Lamp lamps [10];


void init () {

struct Lamp lamp0 = { 0013A200 ,  4094500D  , 0 , 1 , 0 , 0, 0 , 0} ;
struct Lamp lamp1 = { 0013A200 ,  40B12530  , 0 , 1 , 0 , 0, 0 , 0} ;
struct Lamp lamp2 = {  ,   , 0 , 0, 0 , 0, 0, 0 };
struct Lamp lamp3 = {  ,   , 0 , 0, 0 , 0, 0, 0 };
struct Lamp lamp4 = {  ,   , 0 , 0, 0 , 0, 0, 0 };
struct Lamp lamp5 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp6 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp7 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp8 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp9 = {  ,   , 0 , 0, 0, 0 , 0, 0 };

lamps [0] = lamp0 ;
lamps [1] = lamp1 ;
lamps [2] = lamp2;
lamps [3] = lamp3 ;
lamps [4] = lamp4 ;
lamps [5] = lamp5 ;
lamps [6] = lamp6 ;
lamps [7] = lamp7 ;
lamps [8] = lamp8 ;
lamps [9] = lamp9 ;
}

it compiles without errors ( and it may be that it works!) but it is
certainly wrong because it consumes twice the memory required (once for
the array [ 10] and another for 10 lamps).

The question is: how can I initialize the array without defining first
ten lamps individually ?

Thank you very much .


struct Lamp {
   uint8_t highAddress[11];
   uint8_t lowAddress[11];
   uint8_t onoff;
   uint8_t active;
   uint8_t power;
   uint8_t brightness;
   uint8_t temperatures;
   uint8_t faultCount;
} ;

struct Lamp lamps [10] = {
   { 0013A200 ,  4094500D , 0, 1, 0, 0, 0, 0},
   { 0013A200 ,  40B12530 , 0, 1, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
   {  ,   , 0, 0, 0, 0, 0, 0},
};


___
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list


Re: [avr-gcc-list] How to initialize an array of struct?

2013-12-14 Thread Russell Shaw

On 15/12/13 17:20, dfx wrote:


Hi,

After spending more than one day to create an array of struct I have
come to this code:

struct Lamp  {
uint8_t highAddress [9] ;
uint8_t lowAddress [9] ;
uint8_t onoff ;
uint8_t active ;
uint8_t power;
uint8_t brightness ;
uint8_t temperatures ;
uint8_t faultCount ;
} ;

struct Lamp lamps [10];


void init () {

struct Lamp lamp0 = { 0013A200 ,  4094500D  , 0 , 1 , 0 , 0, 0 , 0} ;
struct Lamp lamp1 = { 0013A200 ,  40B12530  , 0 , 1 , 0 , 0, 0 , 0} ;
struct Lamp lamp2 = {  ,   , 0 , 0, 0 , 0, 0, 0 };
struct Lamp lamp3 = {  ,   , 0 , 0, 0 , 0, 0, 0 };
struct Lamp lamp4 = {  ,   , 0 , 0, 0 , 0, 0, 0 };
struct Lamp lamp5 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp6 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp7 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp8 = {  ,   , 0 , 0, 0, 0 , 0, 0 };
struct Lamp lamp9 = {  ,   , 0 , 0, 0, 0 , 0, 0 };

lamps [0] = lamp0 ;
lamps [1] = lamp1 ;
lamps [2] = lamp2;
lamps [3] = lamp3 ;
lamps [4] = lamp4 ;
lamps [5] = lamp5 ;
lamps [6] = lamp6 ;
lamps [7] = lamp7 ;
lamps [8] = lamp8 ;
lamps [9] = lamp9 ;
}

it compiles without errors ( and it may be that it works!) but it is
certainly wrong because it consumes twice the memory required (once for
the array [ 10] and another for 10 lamps).

The question is: how can I initialize the array without defining first
ten lamps individually ?

Thank you very much .


struct Lamp {
   uint8_t *highAddress;
   uint8_t *lowAddress;
   uint8_t onoff;
   uint8_t active;
   uint8_t power;
   uint8_t brightness;
   uint8_t temperatures;
   uint8_t faultCount;
} ;

struct Lamp lamps [10] = {
   {(uint8_t *) 0013A200 , (uint8_t *) 4094500D , 0, 1, 0, 0, 0, 0},
   {(uint8_t *) 0013A200 , (uint8_t *) 40B12530 , 0, 1, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
   {(uint8_t *)  , (uint8_t *)  , 0, 0, 0, 0, 0, 0},
};

The casts can be eliminated if you use normal char * instead of uint8_t.

___
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list


Re: XRANDR outputs

2013-10-15 Thread Russell Shaw

On 16/10/13 08:58, Alex Deucher wrote:

On Tue, Oct 15, 2013 at 2:53 AM, Russell Shaw rjs...@netspace.net.au wrote:

Hi,
After a system upgrade, xrandr no longer reports two monitors connected to
the video card. I get:

xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
1600x1200   0.0*
1280x1024   0.0
1152x8640.0
1024x7680.0
800x600 0.0
640x480 0.0
720x400 0.0



Looks like something broke during your upgrade.  It looks like ended
up with the vesa driver rather than radeon.  Check your dmesg output
and xorg log.  Make sure you have the firmware packages installed for
your distro.


Hi,
I found i had the proprietory fglrx driver installed, but the latest one 
required an xorg-video-abi-xx that was not available in debian.


Uninstalling the fglrx driver and installing the xserver-xorg-video-radeon 
package fixed the problem.


All the font rendering looks smoother now for some reason.

___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


[Remind-Fans] 5th friday of month

2013-07-31 Thread Russell Shaw

Hi,
In a Remind file (test) i have:

  REM FRI 29 MSG 5th-friday


when i run remind -c test, i get an entry on the 2nd and 30th.

(today is thursday 1-aug-2013)
___
Remind-fans mailing list
Remind-fans@lists.roaringpenguin.com
http://lists.roaringpenguin.com/cgi-bin/mailman/listinfo/remind-fans
Remind is at http://www.roaringpenguin.com/products/remind


Re: [free-software-melb] CuBox

2013-06-28 Thread Russell Shaw

On 28/06/13 18:27, Glenn McIntosh wrote:

On 28/06/13 16:59, Sven@GMX wrote:

But in order to programm the Embedded Pi you need to install CoocoxIDE,
which is free to use but neither Open Source nor does it run on an Open
Source system such as Linux.


Unfortunately this creeping lock-in is all too common in the firmware
world. Often it is a 'not invented here' corporate dysfunction at play.

Many of these IDEs are really only a GUI shell to run openly licenced
tools such as gcc (CoocoxIDE is just one of many such IDEs), and don't
add anything that couldn't be done in any decent IDE. The hardware
specific parts are typically just a few scripts that specify compilation
options and uploading/debugging connnections, and perhaps a device
specific library. Apart from the lack of openness, I find it a major
annoyance when working on multiple firmware platforms, all with
inconsistent IDEs and libraries.

I think we have to resist such lock-in. For projects where we have
control, this may involve separating out the proprietary tools and
discarding them (eg, setting up our own scripts for the hardware that
can work with a non-proprietary IDE, and making them available to
others). If this is not practical, I think it is quite rational to
boycott such hardware. There are good business reasons for avoiding
vendor lock-in, not to mention the fact that it is your own freedom as a
developer that is being restricted here.


I never bothered with the Pi because the most important and interesting part 
(the graphics drivers and graphics register details) is closed. Defeats the 
point of the whole thing. I wouldn't use a Pi if they were free (as in beer).


___
Free-software-melb mailing list
Free-software-melb@lists.softwarefreedom.com.au
http://lists.softwarefreedom.com.au/cgi-bin/mailman/listinfo/free-software-melb


Free Software Melbourne home page: http://www.freesoftware.asn.au/melb/


Re: [ANNOUNCE] libXi 1.4.99.1

2011-11-09 Thread Russell Shaw

On 09/11/11 12:16, Peter Hutterer wrote:

A month late but I just noticed that I never sent an announcement out for
this. libXi is the first snapshot for XI 2.1 support. At this point I
consider it unlikely that any major protocol changes will happen to the
smooth scrolling support.

If you're working on a toolkit or similar, I highly recommend to start using
the new stuff while we can still change it to fit your expectations better.


Hi,
I posted this message 4-Nov-2010:

quote 
In XInput2, when i get a XI_HierarchyChanged event after plugging in another 
mouse, is there a way to get a unique identifier for each device such as a brand 
and model number?


When i start my program that uses two mice for different functions (one in each 
hand), it would be useful for them both to be assigned the correct role whenever 
the program is started, regardless of whatever other devices have been plugged 
in since the last session.

 unquote

I'm not currently working on mouse stuff, but i will again sometime, and will 
use more than one pointer device simultaneously for CAD programs.


Brand and model number and also the port the pointer is plugged into would be 
useful, in case both devices are the same model.

___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: seprate window management component

2011-09-14 Thread Russell Shaw

On 15/09/11 04:33, Michal Suchanek wrote:

On 14 September 2011 20:26, Bill Spitzakspit...@gmail.com  wrote:

I think the idea is that what you are calling the window manager is in
fact a library running in the client process and memory space. It would
probably be part of the toolkit.



Which is utterly wrong.

1) you can't deal with clients malfunctioning

2) now every toolkit would not only look differently but also behave
differently, possibly to the point that when running applications
using multiple different toolkits your desktop breaks due to WM
incompatibility

3) this is not really toolkit specific and should not have to be
reimplemented in every toolkit


If implementing something in the toolkit makes things easier, then i don't see 
why that shouldn't be done. All that's needed for consistancy between toolkits 
is a standard to follow. I wouldn't want policy imposed on my toolkit by an 
external server i don't like.


IIRC, the X icccm defines properties for window groups, and it is up to the 
application to set those properties correctly and that the WM does the right 
thing. If they don't do the right thing or are malfunctioning, then just fix 
them or create an alternative.

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: gEDA-user: pcjc2 tessellation

2011-05-29 Thread Russell Shaw

On 29/05/11 23:30, Peter Clifton wrote:

On Sun, 2011-05-29 at 11:37 +1000, Russell Shaw wrote:


Hi,
In _borast_bentley_ottmann_tessellate_bo_edges() which is from
_cairo_bentley_ottmann_tessellate_bo_edges(), i see you deleted

case CAIRO_BO_EVENT_TYPE_INTERSECTION:

What effect does this have on the types of polygons that can
be rasterized?


Think i know now. Polygons can't have edges that cross other edges.


You got it.. PCB doesn't allow self intersecting polygons, so I removed
support for rendering them in an attempt to manage the complexity (and
hopefully improve speed of) the tessellator.


Have you tried changing all that fixed point maths stuff to simple
floating point operations? It looks very cpu intensive for the
amount of work done.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: pcjc2 tessellation

2011-05-28 Thread Russell Shaw

On 16/05/11 22:59, Russell Shaw wrote:

On 16/05/11 19:26, Peter Clifton wrote:

On Mon, 2011-05-16 at 15:54 +1000, Russell Shaw wrote:


From pcjc2/src/borast/borast-bentley-ottmann.c, i used some functions
to make a small test program to see how bo_contour_to_traps() works.


The code is mostly stolen from cairo, then stripped down to a bare
minumum (e.g. doesn't deal with intersections in contours, as PCB
polygons don't have them).

I'd be interested to know what you're working on. Please let me know if
you spot anything stupid in the borast/ code, I've not completely
cleaned the interfaces up ready for merging yet. (The abstraction
between them and PCB is not particularly clean).


Hi,
In _borast_bentley_ottmann_tessellate_bo_edges() which is from
_cairo_bentley_ottmann_tessellate_bo_edges(), i see you deleted

  case CAIRO_BO_EVENT_TYPE_INTERSECTION:

What effect does this have on the types of polygons that can
be rasterized?


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: pcjc2 tessellation

2011-05-28 Thread Russell Shaw

On 29/05/11 00:46, Russell Shaw wrote:

On 16/05/11 22:59, Russell Shaw wrote:

On 16/05/11 19:26, Peter Clifton wrote:

On Mon, 2011-05-16 at 15:54 +1000, Russell Shaw wrote:


From pcjc2/src/borast/borast-bentley-ottmann.c, i used some functions
to make a small test program to see how bo_contour_to_traps() works.


The code is mostly stolen from cairo, then stripped down to a bare
minumum (e.g. doesn't deal with intersections in contours, as PCB
polygons don't have them).

I'd be interested to know what you're working on. Please let me know if
you spot anything stupid in the borast/ code, I've not completely
cleaned the interfaces up ready for merging yet. (The abstraction
between them and PCB is not particularly clean).


Hi,
In _borast_bentley_ottmann_tessellate_bo_edges() which is from
_cairo_bentley_ottmann_tessellate_bo_edges(), i see you deleted

case CAIRO_BO_EVENT_TYPE_INTERSECTION:

What effect does this have on the types of polygons that can
be rasterized?


Think i know now. Polygons can't have edges that cross other edges.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-18 Thread Russell Shaw

 On 17/05/2011, John Dotyj...@noqsi.com  wrote:

 On May 17, 2011, at 9:56 AM, Russell Shaw wrote:


 Most guis hide what they do. I believe in them showing the commands they
 send internally as a script would (or atleast have the option to show
 that) so the user can paste the commands into an external file if
 needed.

 I've done GUIs that wrap scripts, but it only works in very simple,
 shallow cases. An API that supports GUI well is very different from an API
 that supports scripting well.

 John Doty  Noqsi Aerospace, Ltd. http://www.noqsi.com/
 j...@noqsi.com

On 18/05/11 04:57, Eduardo Costa wrote:

Hi guys,

That's not true at all John. Have you ever heard/seen a program called Alias
Wavefront Maya? It used to be from Silicon Graphics, but they sold it to
Autodesk a couple of years ago.

A program for 3D CGI which has quite an innovative popup menu system with
something called hotboxes and cardinal menus (the one shown bellow). 200%
productive, and much better than anyother existing/deployed nowadays:

http://imageshack.us/photo/my-images/504/polygonquickmenunothingrx6.jpg/

and driven from MEL (sort of an intepreted c languaje they roled for the
purpose of scripting such a huge program). Believe me, you wouldn't even
think it is scripted because they didn't abuse of it, yet it lets such menu
system be 10 times more powerful!

I do share many of your points Russell, while I'm happy (still) using geda.
It seems to me is going somewhere I don't really want to be in a future.

I've got almost done a c-library I wrote implementing this menu systems for
my own programs. Haven't looked at it for a time, but it could work with gtk
or other toolkits as long as they allow low level event handling.

Anyways, if you are really going for it, and are going to use old'good c,
I'll be pleased to hear your thoughts and cooperate.


Hi,
I'm a gtk hater, and am open to new widget toolkit user interface paradigms,
even if it means writing new widgets or toolkits from scratch (which i've done
before).

I found the useability of a 20yo unix box sch/pcb cad program far better
in certain ways than current cad packages. It involved the left hand and
an external multi-button puck device in most of the screen-panning
operations, leading to much less mouse-finger fatigue. It made all the
current Windows cad packages look like kiddies toys by comparison.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-18 Thread Russell Shaw

On 18/05/11 12:28, Kai-Martin Knaak wrote:

Russell Shaw wrote:


The problem with KiCAD is 1) C++, 2) Qt.


The problems I encountered with gnetlist were
1) scheme


I think Scheme could be made much more attractive in geda if
it was adequately explained in documentation or a tutorial.

I haven't looked lately to see if there's more documentation
on it compared to last time i looked.


2) poor documentation



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-18 Thread Russell Shaw

On 19/05/11 02:13, DJ Delorie wrote:



I'm a gtk hater, and am open to new widget toolkit user interface paradigms,


So, you build pcb with --enable-gui=lesstif ?  ;-)


I do it with gtk whenever i want to poke at it. I know how gtk
works, but it's far too convoluted and burdensome for developing
non-trivial widgets for non-trivial applications.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 17/05/11 02:44, DJ Delorie wrote:



I've always been interested in CAD programs and thought of making
a schematic/pcb one from scratch.


I've never truly understood why people would rewrite a (potentially)
huge application set just because.  Why not start with the existing
tools and just rewrite the parts you're interested in?  Like, start
with pcb's HID modules but swap out the core?

(and if you really want to get *that* involved in pcb layout tools,
there *are* parts of pcb that could stand to be ripped out and
replaced... ;)


Hi,
A schematic/pcb editor is not huge unless it's done in an inelegant way.

A very first task i would do is create a decent gui for drawing the symbol and 
footprint in the schematic/pcb library, and make a decent library browser.

Then i would make a drawing mode so that whatever symbol i click on in the
schematic, will appear under the mouse in the pcb. Likewise, clicking a pcb
symbol hilights it in the schematic.

I'd design everything from the ground up to decent reverse annotations so
that pin and gate swapping in the pcb appears in the schematic. Hierarchical
schematics is a must too.

By serializing all the gui actions internally, undo/redo and scripting is easy
to add.

Creating a schematic and pcb should be done productively within the first
hour of never having used the program, yet have no limitations for power
users.

Everything in geda is 180deg opposite to what i'd do.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 17/05/11 22:31, Stefan Salewski wrote:

On Tue, 2011-05-17 at 20:36 +1000, Russell Shaw wrote:

On 17/05/11 02:44, DJ Delorie wrote:

Hi,
A schematic/pcb editor is not huge unless it's done in an inelegant way.

A very first task i would do is create a decent gui for drawing the symbol and
footprint in the schematic/pcb library, and make a decent library browser.
Then i would make a drawing mode so that whatever symbol i click on in the
schematic, will appear under the mouse in the pcb. Likewise, clicking a pcb
symbol hilights it in the schematic.

I'd design everything from the ground up to decent reverse annotations so
that pin and gate swapping in the pcb appears in the schematic. Hierarchical
schematics is a must too.

By serializing all the gui actions internally, undo/redo and scripting is easy
to add.

Creating a schematic and pcb should be done productively within the first
hour of never having used the program, yet have no limitations for power
users.

Everything in geda is 180deg opposite to what i'd do.



gEDA/PCB may be not the ultimate tools, but they work not bad, when you
have learned to use them. (I guess for KiCAD it is similar)

Most other commercial tools, like the popular eagle, or the more than
10k Euro professional tools, needs a long learning period. I was told
that companies consider a 3 month learning period with seminars for
employees when they switch their 10k professionals tools.

EDA design is different from custom office tools!
And an application interface is not bad, just because it is not like
latest Apple/Windows style.

I really would be happy if we can try YOUR EDA suite soon -- but I know
how fast these great projects can fail. Your sentence


I was expert at using high-end HP DCS/PCDS on unix boxes 20 years
ago before it got discontinued, and a few other cad systems since then.


A very first task i would do is create a decent gui for drawing the
symbol and footprint in the schematic/pcb library, and make a decent
library browser.


makes me not really confident.


I've thought of all the implementation and usage problems for a *long* time.
I've been coding on lower level problems for quite a while too.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 17/05/11 22:40, John Doty wrote:


On May 17, 2011, at 4:36 AM, Russell Shaw wrote:



Hi, A schematic/pcb editor is not huge unless it's done in an inelegant
way.

A very first task i would do is create a decent gui for drawing the symbol
and footprint in the schematic/pcb library, and make a decent library
browser. Then i would make a drawing mode so that whatever symbol i click
on in the schematic, will appear under the mouse in the pcb. Likewise,
clicking a pcb symbol hilights it in the schematic.

I'd design everything from the ground up to decent reverse annotations so
that pin and gate swapping in the pcb appears in the schematic.
Hierarchical schematics is a must too.


OK, you want an integrated tool. Integrated tools are great: I have a nice,
handy multitool on my belt. It's the tool I use most.



By serializing all the gui actions internally, undo/redo and scripting is
easy to add.

Creating a schematic and pcb should be done productively within the first
hour of never having used the program, yet have no limitations for power
users.


Impossible. A multitool cannot do all of the things a well-stocked workshop
can. The architectures are different.


A well-stocked workshop is nothing more than a multitool workshop. There's
no reason why a schematic and pcb editor can't have tight coupling and
still interact with all external tools. The only disadvantage to external
tools is that an interface layer is needed. The coupling could simply be
an ipc protocol between separate programs.


Your program will probably never export designs to other layout programs. It
will never support a variety of simulators. It will never support symbolic
circuit analysis. It will never support scripted documentation generation. Or
the other things in the open-ended list a toolkit can support.


A main priority was to draw schematics for input to a spice or microwave
circuit simulator (simulator writing is my other interest), and have an
easy gui way of displaying the results.


That's fine for an integrated tool: target the specific flow you want. It's
no doubt what the majority of users would prefer, at least at the start, and
gEDA will still be around for those who need more.



Everything in geda is 180deg opposite to what i'd do.



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 17/05/11 23:43, Stefan Salewski wrote:

On Tue, 2011-05-17 at 23:35 +1000, Russell Shaw wrote:



I was expert at using high-end HP DCS/PCDS on unix boxes 20 years
ago before it got discontinued, and a few other cad systems since then.


A very first task i would do is create a decent gui for drawing the
symbol and footprint in the schematic/pcb library, and make a decent
library browser.


makes me not really confident.


I've thought of all the implementation and usage problems for a *long* time.
I've been coding on lower level problems for quite a while too.



Great -- the FOSS EDA world really needs some more smart and active
people.


Instead of blindly reinventing the wheel, i always look in detail
at what currently exists. The more i figure out geda, maybe i could
do something with it. It's just that i have to do it at arms length
because i can't stand using it.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 18/05/11 00:15, John Doty wrote:


On May 17, 2011, at 7:45 AM, Russell Shaw wrote:


A well-stocked workshop is nothing more than a multitool workshop.


With that attitude, you'll botch the job.


There's no reason why a schematic and pcb editor can't have tight coupling
and still interact with all external tools.


The architectures are different. To flexibly interact with external tools,
you need the interfaces to be simple text files. Anything more complex is a
serious barrier, in general.


That's why the matching pcb/schematic editors will work seamlessly, but
external tools will only work by importing and exporting file formats.

If an external tool had a way of remote control by scripting, then
some degree of closer coupling between the tools could be done.


The only disadvantage to external tools is that an interface layer is
needed.


A separate piece of complex code for every interface, yes. This isn't too bad
in gEDA, because we don't try to integrate the diverse collection of
downstream tools with gschem: it's a pretty clean, simple flow.


The coupling could simply be an ipc protocol between separate programs.


Specialized IPC is good in its place. General-purpose IPC is complex,
fragile, and always less flexible than intended.


Agreed.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 18/05/11 00:30, Stefan Salewski wrote:

On Tue, 2011-05-17 at 23:59 +1000, Russell Shaw wrote:



Instead of blindly reinventing the wheel, i always look in detail
at what currently exists.


Maybe KiCAD is a better starting point for you?
Written in C++ with wxWidgets, it is available for multiple OS including
windows. Here in Germany KiCad is more popular than gEDA/PCB, even for
Linux users. I do not really understand this, I have never find time and
motivation to really test KiCad myself. While gEDA/PCB has some serious
users and a large list of projects done with gEDA, KiCAD users seems to
be more childreen type, making boards with a power LED and a led driver
chip...

On the KiCAD developer mailing list there is much activity, but there
are only a few really smart and active developers, so development
progress is slow. Indeed, nearly all windows KiCAD users seems to be
only consumers, without any contributions. And there is Fritzing or Qucs
-- Qucs has schematics and simulation support, but PCB backend is
missing. Once I had the strange idea to implement a PCB or schematics
mode for inkscape. Really crazy.


The problem with KiCAD is 1) C++, 2) Qt.

C++ was a *really* bad idea. Qt i don't like because it was fundamentally
architected just for the sake of hiding code from users using the MOC
preprocessor that used to be closed source. Anyway, it's C++ too.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 18/05/11 00:30, Stefan Salewski wrote:

On Tue, 2011-05-17 at 23:59 +1000, Russell Shaw wrote:



Instead of blindly reinventing the wheel, i always look in detail
at what currently exists.


Maybe KiCAD is a better starting point for you?
Written in C++ with wxWidgets, it is available for multiple OS including
windows. Here in Germany KiCad is more popular than gEDA/PCB, even for
Linux users. I do not really understand this, I have never find time and
motivation to really test KiCad myself. While gEDA/PCB has some serious
users and a large list of projects done with gEDA, KiCAD users seems to
be more childreen type, making boards with a power LED and a led driver
chip...

On the KiCAD developer mailing list there is much activity, but there
are only a few really smart and active developers, so development
progress is slow. Indeed, nearly all windows KiCAD users seems to be
only consumers, without any contributions. And there is Fritzing or Qucs
-- Qucs has schematics and simulation support, but PCB backend is
missing. Once I had the strange idea to implement a PCB or schematics
mode for inkscape. Really crazy.


The problem with KiCAD is 1) C++, 2) Qt.

C++ was a *really* bad idea. Qt i don't like because it was fundamentally
architected just for the sake of hiding code from users using the MOC
preprocessor that used to be closed source. Anyway, it's C++ too.

If i got familiar enough with geda, i'd adapt it, but it's a tradeoff
of how much work it would take compared to something new. The biggest
problem is changes without affecting current users. IMO, more progress
would be made by exchanging code between separate projects.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 18/05/11 00:30, Stefan Salewski wrote:

On Tue, 2011-05-17 at 23:59 +1000, Russell Shaw wrote:



Instead of blindly reinventing the wheel, i always look in detail
at what currently exists.


Maybe KiCAD is a better starting point for you?
Written in C++ with wxWidgets, it is available for multiple OS including
windows. Here in Germany KiCad is more popular than gEDA/PCB, even for
Linux users. I do not really understand this, I have never find time and
motivation to really test KiCad myself. While gEDA/PCB has some serious
users and a large list of projects done with gEDA, KiCAD users seems to
be more childreen type, making boards with a power LED and a led driver
chip...

On the KiCAD developer mailing list there is much activity, but there
are only a few really smart and active developers, so development
progress is slow. Indeed, nearly all windows KiCAD users seems to be
only consumers, without any contributions. And there is Fritzing or Qucs
-- Qucs has schematics and simulation support, but PCB backend is
missing. Once I had the strange idea to implement a PCB or schematics
mode for inkscape. Really crazy.


The problem with KiCAD is 1) C++, 2) Qt.

C++ was a *really* bad idea. Qt i don't like because it was fundamentally
architected just for the sake of hiding code from users using the MOC
preprocessor that used to be closed source. Anyway, it's C++ too.

If i got familiar enough with geda, i'd adapt it, but it's a tradeoff
of how much work it would take compared to something new. The biggest
problem is changes without affecting current users. IMO, more progress
would be made by exchanging code between separate projects.

It seems like too much redundancy to have two projects with similar
uses (which i wouldn't like), and i don't like forking either.

I'm still studying geda, but if i did some real work on it, it
would end up having an extra file format, extra guis, and a closer
sch/pcb link.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Reinventing the wheel

2011-05-17 Thread Russell Shaw

On 18/05/11 01:41, John Doty wrote:


On May 17, 2011, at 9:06 AM, Russell Shaw wrote:


It seems like too much redundancy to have two projects with similar uses
(which i wouldn't like), and i don't like forking either.


But your vision is an integrated tool, while gEDA is a toolkit.



I'm still studying geda, but if i did some real work on it, it would end up
having an extra file format, extra guis, and a closer sch/pcb link.


Please, no. These are tools that represent extremely incompatible design
philosophies. They work well together only because the interface is clean and
simple, and avoids the minefield of integration.


Most guis hide what they do. I believe in them showing the commands they
send internally as a script would (or atleast have the option to show that)
so the user can paste the commands into an external file if needed.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Unsubscribing from the list

2011-05-17 Thread Russell Shaw

On 18/05/11 02:01, Peter TB Brett wrote:

Hi folks,

It's no longer a worthwhile use of my time to monitor this list, due to the
excessively low signal-to-noise ratio. I'm therefore unsubscribing from it for
the time being.  I will continue to monitor the gEDA-bug and gEDA-dev mailing
lists.

If you wish to get help with using gEDA, please file a question here:

https://answers.launchpad.net/geda

If you think you have found a bug, or wish to submit a patch, please file a
report here:

https://bugs.launchpad.net/geda


Don't go dammit, i didn't intend posting anything more, let alone the last lot.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


gEDA-user: pcjc2 tessellation

2011-05-16 Thread Russell Shaw

On 11/09/10 07:59, Peter Clifton wrote:

On Fri, 2010-09-10 at 14:16 -0400, Windell H. Oskay wrote:

On Fri, Sep 10, 2010 at 01:31:48AM +0100, Peter Clifton wrote:

PS.. have you tried any of the GL stuff?

http://www2.eng.cam.ac.uk/~pcjc2/geda/trans_poly.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-1.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-2.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-3.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-4.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-5.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-6.png
http://www2.eng.cam.ac.uk/~pcjc2/geda/pcb+gl_3d/pcb+gl_3d-7.png



Wow. These screenshots are incredible.


Thanks!


Please excuse my naive question, but is this something that the rest of us
can expect to see in PCB someday?


Some day.. eventually. It is a slow work in progress to get the code
clean enough to push into git HEAD. In the mean time, the branch is
before_pours in this repository:

git://repo.or.cz/geda-pcb/pcjc2.git

I've been working slowly to get the OpenGL stuff to co-exist with a
standard GDK build, but for the moment that isn't finished.


Hi,
From pcjc2/src/borast/borast-bentley-ottmann.c, i used some functions
to make a small test program to see how bo_contour_to_traps() works.

In bo_contour_to_traps(), i get num_events = contour-Count = 0,
so i must be missing something. Here's the test i was trying:

void
borast(void)
{
Vector v;
v[0] = 0;// x
v[1] = 0;// y

PLINE *contour = poly_NewContour(v);

v[0] = 1;// x
v[1] = 0;// y
VNODE *node = poly_CreateNode(v);

VNODE *after = contour-head;
poly_InclVertex(after, node);

v[0] = 1;// x
v[1] = 1;// y
VNODE *node2 = poly_CreateNode(v);

poly_InclVertex(node, node2);

borast_traps_t traps;
bo_contour_to_traps(contour, traps);
}


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: pcjc2 tessellation

2011-05-16 Thread Russell Shaw

On 16/05/11 19:26, Peter Clifton wrote:

On Mon, 2011-05-16 at 15:54 +1000, Russell Shaw wrote:


   From pcjc2/src/borast/borast-bentley-ottmann.c, i used some functions
to make a small test program to see how bo_contour_to_traps() works.


The code is mostly stolen from cairo, then stripped down to a bare
minumum (e.g. doesn't deal with intersections in contours, as PCB
polygons don't have them).


Hi,
I've looked in cairo before but never much got the hang of it
in detail.


I'd be interested to know what you're working on. Please let me know if
you spot anything stupid in the borast/ code, I've not completely
cleaned the interfaces up ready for merging yet. (The abstraction
between them and PCB is not particularly clean).


I've always been interested in CAD programs and thought of making
a schematic/pcb one from scratch.

One thing i'm eternally conflicted with is relying on video-card
hardware that is closed source.

The problem with the free drivers is that when you send it polygons,
it could end up software rendering them, and you have no way of knowing
in advance if the performance will totally suck.

If you just generate pixels from scanline rendering in software,
this can be done directly from a list of arbitrarily intersecting
lines without requiring the bentley-ottmann polygon generator step.
You generate the whole window pixmap yourself and send that to the
screen.

Using this, i could avoid openGL. However, if an open hardware
accelerated openGL came along i was happy with, then i would need
to use the bentley-ottmann step to generate polygons, but i don't
understand that bit of code in detail, even though i've read the
paper. If i understood it in detail, then i could look closer at
how pcjc2 works and maybe improve something.


See suggestion inline with the code:


In bo_contour_to_traps(), i get num_events = contour-Count = 0,
so i must be missing something. Here's the test i was trying:

void
borast(void)
{
  Vector v;
  v[0] = 0;// x
  v[1] = 0;// y

  PLINE *contour = poly_NewContour(v);

  v[0] = 1;// x
  v[1] = 0;// y
  VNODE *node = poly_CreateNode(v);

  VNODE *after =contour-head;
  poly_InclVertex(after, node);

  v[0] = 1;// x
  v[1] = 1;// y
  VNODE *node2 = poly_CreateNode(v);

  poly_InclVertex(node, node2);



After the last vertex in a contour, you need to finish preparing the
contour, with a call to:

   poly_PreContour (contour, TRUE); /* TRUE turns optimisation for 
redundant nodes on, FALSE should work too */

This calculates the contour's area, figures out what order you defined
the edges in (winding order), and constructs an r-tree of the edges (to
make the contour participate faster in boolean operations)


  borast_traps_t traps;
  bo_contour_to_traps(contour,traps);
}


Thanks muchly:)


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: pcjc2 tessellation

2011-05-16 Thread Russell Shaw

On 16/05/11 19:26, Peter Clifton wrote:

On Mon, 2011-05-16 at 15:54 +1000, Russell Shaw wrote:


   From pcjc2/src/borast/borast-bentley-ottmann.c, i used some functions
to make a small test program to see how bo_contour_to_traps() works.


The code is mostly stolen from cairo, then stripped down to a bare
minumum (e.g. doesn't deal with intersections in contours, as PCB
polygons don't have them).

I'd be interested to know what you're working on. Please let me know if
you spot anything stupid in the borast/ code, I've not completely
cleaned the interfaces up ready for merging yet. (The abstraction
between them and PCB is not particularly clean).


Hi,
In poly_PreContour(), the sign of the winding area is found by
summing the area of each box formed by consecutive points. It is
not clear if this method is valid. Is there a reference paper?

  double area = 0;
  ...
  do {
area += (double) (p-point[0] - c-point[0]) * (p-point[1] +
c-point[1]);
  }


I think better if:

  int area = 0;
  ...
  do {
area += p-point[0]*c-point[1] - c-point[0]*p-point[1];

/* http://en.wikipedia.org/wiki/Polygon#Area_and_centroid */
  }

because it calculates the total winding area of a polygon.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: client side decorations

2011-05-11 Thread Russell Shaw

On 11/05/11 18:55, Michal Suchanek wrote:

On 10 May 2011 05:46, Russell Shawrjs...@netspace.net.au  wrote:

On 10/05/11 07:29, Daniel wrote:


El dg 08 de 05 de 2011 a les 09:47 -0700, en/na Bill Spitzak va
escriure:


Though it is possible, I don't like the idea of clients sending hints
about what areas are the close box or window border, since it implies
there are such concepts as title bar and close box. The compositor
can just have clicks anywhere raise and move the non-responsive
window, and lots of clicks (indicating user frustration) pop up a box
offering to kill the program. On Linux, since it is standard,
compositors can also have Alt+click always raise/move windows, and alt
+right click pop up a menu of compositor-side window actions.



This would be actually a good way to handle it. Use an special mode or
tool, a la xkill, to deal with stuck applications. It can take the form
of an special key/mouse combination, gestures, or as I said before, an
external tool like xkill. Note that it needs not be limited to killing,
but could do any other thing, like minimizing, sending to another
virtual desktop, etc.


Keeping track of dead clients could be done like this:

A client program opens a socket connection to the window server,
and the window server determines the PID of the client via a
means that the client has no control over (some kind of kernel
call that can determine the client using that socket).

The client also sends the window server the title bar area
that contains the maximize/minimize/close buttons.

All clients must handle an is_alive probe event from the window
server at any time, replying with something unspecified to confirm
it is not dead.

Whenever the mouse is clicked in the title bar, the window server
can expect the client to send it an is_alive notification within
say 1 second. If it doesn't, the window server can send the client an
is_alive probe event. If there's no response after a certain time,
the window server can kill the client. Alternatively, it could pop up
a gui task manager window for the user to manually kill stuff.


Clearly it's up to the user to decide if an application is stuck or not.

The is_alive request may look like a nice idea at the first glance but
it is not very reliable.

How long timeout is allowed before the application is marked
'unresponsive'? This is clearly application and system specific. Any
timeout based protocol is inherently unreliable.


In X, dragging or resizing a window is instantaneous. The proposed
scheme was to allow a 1000 millisecond delay before assuming the
client was stuck.

It was assumed the user could also bring up a task manager with
crtl-alt-delete and kill a client manually if needed.


The application may have a separate thread to fulfill this is_alive
requirement and the rest may still be stuck.

The application may be running but in undesirable state which is not
something the compositor can decide.

An utility like xkill resolves all of the above. You don't like the
application so you get rid of it.

The compositor can resize or hide the application window at any time
without any cooperation from the application.

The application may publish hints as to how it wants the window
content treated when it does not match the size of the displayed
window and the compositor may use these to present the window in a
reasonable way until the application resizes the content. This
requires that the compositor notifies the application when the window
is resized.



___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: client side decorations

2011-05-06 Thread Russell Shaw

On 06/05/11 10:18, Bill Spitzak wrote:

I believe client-side decorations are an absolute must.

The amount of code necessary for an application to use an async protocol
to describe how the window border should appear is greatly larger than
that needed to just draw and handle events in the window border itself.
In FLTK I would estimate the ICCCM code for the window object is about 5
times larger than the code for an otherwise similar MDI-like frame where
FLTK draws everything. Handling resize and other events cleanly is a
real mess, too, due to the async nature of them.

Also such designs lock the user interface ideas into whatever existed at
that time, an excellent example is Gimp's being forced to give up any
attempt to make multiple windows because of window managers failing to
implement the many controls it would need.

...

Any program could manage the internals of their own desktop window,
acting like a sub window manager for other windows belonging to that
program.
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: client side decorations

2011-05-06 Thread Russell Shaw

On 06/05/11 10:18, Bill Spitzak wrote:

I believe client-side decorations are an absolute must.

The amount of code necessary for an application to use an async protocol
to describe how the window border should appear is greatly larger than
that needed to just draw and handle events in the window border itself.
In FLTK I would estimate the ICCCM code for the window object is about 5
times larger than the code for an otherwise similar MDI-like frame where
FLTK draws everything. Handling resize and other events cleanly is a
real mess, too, due to the async nature of them.

Also such designs lock the user interface ideas into whatever existed at
that time, an excellent example is Gimp's being forced to give up any
attempt to make multiple windows because of window managers failing to
implement the many controls it would need.

...

Any program could manage the internals of their own desktop window,
acting like a sub window manager for other windows belonging to that
program.

The program would need to draw its own maximize/minimize/close buttons.
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: debbugs, and a FAQ, for Autotools

2011-02-19 Thread Russell Shaw

On 20/02/11 06:10, Ralf Wildenhues wrote:

Hi Russell,

* Russell Shaw wrote on Mon, Feb 14, 2011 at 12:00:14AM CET:

I'd ask more about how the internals of ./configure and autoconf works.


Can you formulate more specific questions?


And questions on how to make bison get handled without being forced to
mimic standard yacc.


I've added that question there now (without answer so far).

Thanks,
Ralf



Hi,
I'm not in autoconf debugging mode atm, so i'll have to ask more detailed
things some other time.

Looking through a ./configure script, i see lots of things being done
with file descriptors 5 and 6. What is going on here? eg:


##  ##
## Autoconf initialization. ##
##  ##

# ac_fn_c_try_compile LINENO
# --
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
  as_lineno=${as_lineno-$1} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  rm -f conftest.$ac_objext
  if { { ac_try=$ac_compile
case (($ac_try in
  *\* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo=\\$as_me:${as_lineno-$LINENO}: $ac_try_echo\
$as_echo $ac_try_echo; } 5
  (eval $ac_compile) 2conftest.err
  ac_status=$?
  if test -s conftest.err; then
grep -v '^ *+' conftest.err conftest.er1
cat conftest.er1 5
mv -f conftest.er1 conftest.err
  fi
  $as_echo $as_me:${as_lineno-$LINENO}: \$? = $ac_status 5
  test $ac_status = 0; }  {
 test -z $ac_c_werror_flag ||
 test ! -s conftest.err
   }  test -s conftest.$ac_objext; then :
  ac_retval=0
else
  $as_echo $as_me: failed program was: 5
sed 's/^/| /' conftest.$ac_ext 5

ac_retval=1
fi
  eval $as_lineno_stack; test x$as_lineno_stack = x  { as_lineno=; unset 
as_lineno;}

  as_fn_set_status $ac_retval

} # ac_fn_c_try_compile




Re: debbugs, and a FAQ, for Autotools

2011-02-14 Thread Russell Shaw

On 14/02/11 05:12, Ralf Wildenhues wrote:

[ Cross post; Reply-To and Mail-Followup-To set.  Please followup to
   the automake list only, to avoid excessive spammage.  Thank you.  ]

Hello everyone,

I've been advertising debbugs before, I think we should be a good
example.  So, two proposals:

1) Autoconf and Libtool should also use debbugs.

bug-automake has switched a few months ago, and I find it helpful to
avoid losing reports.  Given that we never have enough time on our
hands, it becomes more important to not lose track.

See http://debbugs.gnu.org/ and linked pages for details.

2) Autotools should have a FAQ document.  Not of the sort of the FAQ
chapter that answers seven random questions and that has a 1 year+
latency until it is updated, but one that answers both totally-newbie
kinds of questions that get asked over and over again, or cross-tool
bug questions like the infamous libtool echo problem (which was due to
an incompatible m4sugar change).  A document that, ideally, eventually
obsoletes many of the third-party here's how autotools work, in quick
kinds of pages.

See e.g., this most recent thread which made the need so clear again:
http://thread.gmane.org/gmane.comp.sysutils.automake.patches/5672


For (2) I'd suggest a wiki if we GNU the infrastructure, but something
like a new page http://www.gnu.org/software/automake/Autotools-FAQ.html
would certainly be good.  (And yes, I've been arguing against wikis in
the past.  I was wrong.  Sue me.)


Now, I have very little spare time on my hands.  Any volunteers on
managing such a document?  Any people interested in contributing answers
or even only questions?  I wouldn't mind handing out commit privs to any
of the regulars on these lists.


I'd ask more about how the internals of ./configure and autoconf works.
And questions on how to make bison get handled without being forced to
mimic standard yacc. I'm not in the mode of autoconf hacking atm though.



Re: configure -C by default?

2011-02-07 Thread Russell Shaw

On 07/02/11 23:45, Brian Gough wrote:

At Sun, 6 Feb 2011 23:11:43 +0100,
Ralf Wildenhues wrote:

Back then, the consensus was to not make it the default because that was
deemed too dangerous for users.  Various reports are cited, and also the
problem is mentioned that such kinds of failures tend to be quiet very
often and are hard to debug.


The reports are convincing for me that it would be bad to revive the
old behaviour.

Most of the GNU maintainers at FOSDEM didn't know about the -C option
though.  Maybe it would help to publicise -C in the output so people
are more aware of it. e.g.

 $ ./configure
  configure: not caching test results (use -C to enable)
  checking for a BSD-compatible install... /usr/bin/install -c
  ...

The message could be suppressed if config.status does not exist, so
it's only shown if someone is configuring more than once.


If you compile/install a program successfully, then apt-get remove a
library (or stuff gets uninstalled when installing something else),
then the manually compiled program doesn't run. A new
./configure will run successfully from the cached results even
though a required library is missing. Seems pretty bad to me if
using cached results is the default. Only developers doing
repeated ./configure need it, and can just use the -C option.

___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


Bison

2011-01-11 Thread Russell Shaw

Hi,
On debian, there is /usr/bin/bison, and
/usr/bin/bison.yacc just does:

  exec '/usr/bin/bison' -y $@

How can i get autoconf to use bison?

The problem with yacc is that you can't rename
the output files and always get: y.tab.h y.tab.c

Is there a way i can get yacc to give better output
file names like myproj.tab.h myproj.tab.c ?

___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


Re: Bison

2011-01-11 Thread Russell Shaw

On 12/01/11 06:24, John Calcote wrote:

On 01/11/2011 04:31 AM, Russell Shaw wrote:

Hi,
On debian, there is /usr/bin/bison, and
/usr/bin/bison.yacc just does:

   exec '/usr/bin/bison' -y $@

How can i get autoconf to use bison?

The problem with yacc is that you can't rename
the output files and always get: y.tab.h y.tab.c

Is there a way i can get yacc to give better output
file names like myproj.tab.h myproj.tab.c ?


Hi Russell - try the techniques listed here:
http://www.mail-archive.com/help-bison@gnu.org/msg01897.html


Hi J.C,
It's close to what i'm looking for, but not complete enough.
I'm not good at autoconf stuff. Why is descriptor 5 used?

ac_compile_yacc='$CC -c $CFLAGS $CPPFLAGS $ac_cv_prog_yacc_root.c 5'

___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


Re: gEDA-user: gEDA Wikibook ?

2010-12-25 Thread Russell Shaw

On 26/12/10 01:13, Karl Hammar wrote:

Russell:
...

I don't do latex, because not one sane person on any planet
can explain Tex. (yes, i've read all the tex manuals and have written
compiler tools)


Strange wording. I've not read the tex manuals and I can still produce
and be fluent with Latex.

About Tex, it's just an old macro processor and as such it has it's
drawbacks. The good point (depending of your point of view) about
Tex is that it's format is stable, you don't have to relearn every
tree years.


Hi,
I've written documents with images in Latex. It all seems quite neat
on the surface. When you dig down to Tex to try and do something for
templates other than book or article, there's no hope in hell
in making sense of the incoherent ramblings of all the existing
Tex documentation. The most technical terms for the parsing machinery
is throat/gullet/stomach.

Where is the BNF syntax for the Tex parser, or the list of
recognized characters for the recognized keywords?

Where is the list of builtin functions for any builtin
keywords?


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Small patch to aid use of lib dmalloc

2010-12-06 Thread Russell Shaw

On 07/12/10 11:55, Peter Clifton wrote:

On Tue, 2010-12-07 at 00:48 +, Peter Clifton wrote:

On Tue, 2010-12-07 at 10:04 +1100, Stephen Ecob wrote:


Dropping the (a) ? (a) : 1 foolishness would be cleaner, but could
expose latent bugs in the 71 callers of the mymem allocators.
I'm happy to proceed either way.  What is your preference ?


Let me push a big patch nuking the My* allocation functions, that would
make me feel much happier.


Damnit, MyMalloc does some other helpful things, like checking for a
memory allocation failure and aborting with a useful diagnostic message.

I'd be pretty happy to drop the messages (as it is not such a common
occurrence), but I do note that the changes I'm about to propose will
change a known handled failure path with a nice error message and
termination, to retuning a NULL pointer which is then probably used,
probably followed by segfault.

On Linux at least, malloc will tend to always succeed rather than
returning out of memory.


You could wrap malloc so that it does a longjmp to the start of the
program where the error is displayed then exits. Gracefully handling
malloc failures is too tedious and itself bug-prone, so just design
the program so that they should never happen, given an adequte amount
of memory.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: default -g ??!?

2010-11-20 Thread Russell Shaw

On 20/11/10 06:10, MK wrote:

I have a FOSS project distributed by debian, and for quite I've been
using this in the Makefile.am under install-data-am:

-strip --strip-all $(bindir)/executable

Since I could not find a way to prevent the project being built -g, and
there is no need for this.


Use dh_strip


However, I have a new release and my packager at debian is now saying
they do not want strip used in makefiles.

How can I prevent -g from being used?


The normal debian packages are stripped by dh_strip, or not when
the debug-symbols debs are made. Therefore, the debian packager
wants control over that. Therefore, you don't need to worry about
stripping.



Re: gEDA-user: STEP Format? [WAS: Re: PCB+GL+3D Packages??]

2010-11-19 Thread Russell Shaw

On 20/11/10 10:02, Peter Clifton wrote:

On Fri, 2010-11-19 at 13:06 -0800, Colin D Bennett wrote:


That suits me just fine.. OpenGL _likes_ rendering triangles, and any
other geometry primitives are extra work to implement ;)


But wouldn't support for higher-level shapes be superior to triangle
meshes for high-quality renderings (e.g., raytracing, etc.)?  Is the
goal for PCB 3D support intended to be primarily for high-quality
renderings or for real-time viewing of and interaction with the 3D
scene?


Primarily for the latter (at the moment). I imagine your component
design workflow is:

Proper 3D CAD (e.g.insert cad program here) -
or   |
  |
3D graphics (e.g. Blender)   |
  |
   |  |
   |  |
  \|/ |
  |
Export VRML / Collada / ... for PCB's library|
 \|/
   |
   |Export CAD constraints, case etc..
  \|/
  |
Design board using PCB

   ||
   | -  Emit rendering description in graphics friendly format 
---
  \|/   
 |

 |
Emit board shape / component placement as CAD data in some format 
|

 |
   |
\|/
   |   Render board in graphics 
app.
  \|/  povtrace / blender?

Model board in CAD, design casing around it / whatever



I'm coming round to the idea that 3D is more than just eye candy if we
do it nicely. It helps visualise component placement and layout issues
far more readily than just looking at flat layers can do. Your brain may
spot issues it wouldn't otherwise.

I have also spoken to design professionals who value the ability to emit
3D renderings, however rough, as it allows better communication of
project progress and design ideas to clients, who may not themselves be
technical. (Think.. your manager??)


triangle meshes: cylindrical resistors, disc-shaped ceramic capacitors,


My shiny through hole resistor screen-shots had approx 6000 panels, and
yes, it does slow things down if you have lots on screen at once!


Are you using a spatial data structure to omit emitting polygons
for off-screen components?


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: STEP Format? [WAS: Re: PCB+GL+3D Packages??]

2010-11-19 Thread Russell Shaw

On 20/11/10 11:43, kai-martin knaak wrote:

John Griessen wrote:


STL seems to work fine for those shapes - your tool just chooses
triangles that are long and skinny to accurately model the side
of a cylinder for instance.


... and the file size explodes. If the wires of thru hole components
are supposed to look vaguely realistic on zoom, at least 20 triangles
per cylinder are needed. The 90° bend needs another 40 triangles. Every
triangle requires 3 nodes and every node includes three coordinates
plus orientation. That way, the stl size of a simple resistor may
easily xceed the memory footprint of its footprint by two orders of
magnitude.


You need lots of polygons for smooth shading only if the polygons
are flat-shaded.

If fewer polygons are used but with decent shading, the main effect
is that the silhouette has a few visible corners. That wouldn't matter
much for resistors.

http://en.wikipedia.org/wiki/Gouraud_shading
http://en.wikipedia.org/wiki/Phong_shading


The other formats are wanted just for interoperability and
translation.  VRML might do fine for that.


VRML is very similar to STL in that both are formats to export
from 3D CAD applications to rendering software like blender. They
both communicate just meshes, no objects. Beause of this, they
are they are less useful as imports for 3D editing. From mechanical
point of view these mesh formats are one-way roads.

---)kaimartin(---




___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: [openobex-users] Nokia 6120

2010-11-16 Thread Russell Shaw
On 16/11/10 20:06, Hendrik Sattler wrote:
 obexftp -H -U none -u 1 -X

sudo obexftp -H -U none -u 1 -X

Suppressing FBS.
obexftp_open()
obexftp_connect_src()
Connecting...obexftp_connect_src()
obexftp_connect_src() USB 1
cli_sync_request()
\obexftp_sync()
obexftp_sync() OBEX_HandleInput = 0
obexftp_sync() OBEX_HandleInput error: 11
failed: send UUID
Tried to connect for 33ms
unknown error on connect
Still trying to connect
obexftp_connect_src()
Connecting...obexftp_connect_src()
obexftp_connect_src() USB -16
failed: connect
Tried to connect for 3ms
unknown error on connect
Still trying to connect
obexftp_connect_src()
Connecting...obexftp_connect_src()
obexftp_connect_src() USB -16
failed: connect
Tried to connect for 3ms
unknown error on connect
Still trying to connect
obexftp_close()

--
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2  L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
___
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users


Re: [openobex-users] Nokia 6120

2010-11-15 Thread Russell Shaw
On 13/11/10 03:48, Christian Zuckschwerdt wrote:
 Russell,

 you need openobex-dev (or install openobex from source) when compiling
 obexftp. Also you need to check that bluetooth is enabled during openobex
 configuration.

 ObexFTP has a very limited pseudo xml-parser for the directory listings. I
 guess the xml from the phone is somewhat non-standard. I'd be great if you
 could capture the output -- compile ObexFTP with debug enabled and just
 list/get some directories.

 Am 12.11.2010 um 17:26 schrieb Russell Shaw:

 When i mount the 6120 (not 2162), i get a heap of question-marks:

 sudo obexfs -t /dev/Nokia -u 1 /phone russ...@main~: ls -l / ls: cannot
 access /phone: Permission denied total 116 drwxr-xr-x   2 root root   4096
 Nov  3 23:05 bin drwxr-xr-x   3 root root   4096 Nov 12 18:26 boot ...
 d?   ? ?? ?? phone

 I try to compile obexftp-0.22 but get: obexftpd.c:891: warning: implicit
 declaration of function 'BtOBEX_ServerRegister'

Hi,
I used obexftp from http://www.gitorious.org/obexftp/mainline/

obexftp -t /dev/ttyACM1 -v -l

obexftp_open()
obexftp_connect_src()
Connecting...cobex_connect()
bfb_io_open()
Checking for transparent OBEX mode
Write ok, reading back
bfb_io_read() No data (timeout: 2)
do_at_cmd() Sending 4: ATZ
bfb_io_read() No data (timeout: 2)
do_at_cmd() tmpbuf=0:
Comm-error or already in BFB mode
do_at_cmd() Sending 4: ATZ
bfb_io_read() No data (timeout: 2)
do_at_cmd() tmpbuf=0:
Comm-error or already in BFB mode
bfb_write_packets() Select failed
bfb_io_init() Wrote -1 packets
BFB port error
bfb_write_packets() Select failed
bfb_io_init() Wrote -1 packets
BFB port error
Couldn't init BFB mode.
bfb_io_close()

--
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2  L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
___
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users


Re: [openobex-users] Nokia 6120

2010-11-14 Thread Russell Shaw
On 14/11/10 21:25, Russell Shaw wrote:
 On 13/11/10 23:56, Christian Zuckschwerdt wrote:
 Russel,

 just remove doc from Makefile.am, then run autoreconf. Or even
 simpler touch doc/obexftp.1.

 Am 13.11.2010 um 03:34 schrieb Russell Shaw:

 I got obexftp from git. I get a doc error:
 ./configure CFLAGS=-DOBEXFTP_DEBUG=5 -g -O0
 make[2]: Entering directory `/home/russell/SRC/obexftp/doc'
 make[2]: *** No rule to make target `obexftp.1', needed by `all-am'.
 Stop.

 Hi,
 I tried compiling openobex from git. In openobex/apps/obex_test,
 i type make:

 make: *** No rule to make target `/../lib/libmisc.a', needed by
 `obex_test'. Stop.


 I think it's because builddir is not defined anywhere in Makefile.

 It should be defined as '.'

 This causes problems, because the automake manual says:

 — Variable: builddir
 Rigorously equal to ‘.’. Added for symmetry only.

Hi,
I had a closer look at my system and found the debian alternatives
system was pointing at an old version of automake. I set it right now.

--
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
___
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users


Re: [openobex-users] Nokia 6120

2010-11-14 Thread Russell Shaw
On 13/11/10 23:56, Christian Zuckschwerdt wrote:
 Russel,

 just remove doc from Makefile.am, then run autoreconf. Or even simpler 
 touch doc/obexftp.1.

 Am 13.11.2010 um 03:34 schrieb Russell Shaw:

 I got obexftp from git. I get a doc error:
 ./configure CFLAGS=-DOBEXFTP_DEBUG=5 -g -O0
 make[2]: Entering directory `/home/russell/SRC/obexftp/doc'
 make[2]: *** No rule to make target `obexftp.1', needed by `all-am'.  Stop.

Hi,
I compiled and installed openobex from git. I then tried compiling obexftp
from git:

make  all-recursive
make[1]: Entering directory `/home/russell/SRC/obexftp'
Making all in bfb
make[2]: Entering directory `/home/russell/SRC/obexftp/bfb'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp/bfb'
Making all in multicobex
make[2]: Entering directory `/home/russell/SRC/obexftp/multicobex'
if /bin/bash ../libtool --tag=CC --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H 
-I. 
-I. -I..-I/usr/local/include -I.. -I../includes -DOBEXFTP_DEBUG=5 -g -O0 -W 
-Wundef -Wmissing-declarations -Wmissing-prototypes -Wall -MT multi_cobex.lo 
-MD 
-MP -MF .deps/multi_cobex.Tpo -c -o multi_cobex.lo multi_cobex.c; \
 then mv -f .deps/multi_cobex.Tpo .deps/multi_cobex.Plo; else rm -f 
.deps/multi_cobex.Tpo; exit 1; fi
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I.. 
-I/usr/local/include -I.. -I../includes -DOBEXFTP_DEBUG=5 -g -O0 -W -Wundef 
-Wmissing-declarations -Wmissing-prototypes -Wall -MT multi_cobex.lo -MD -MP 
-MF 
.deps/multi_cobex.Tpo -c multi_cobex.c  -fPIC -DPIC -o .libs/multi_cobex.o
multi_cobex.c: In function 'cobex_cleanup':
multi_cobex.c:74: warning: pointer targets in passing argument 3 of 
'bfb_write_packets' differ in signedness
../bfb/bfb.h:90: note: expected 'uint8_t *' but argument is of type 'char *'
multi_cobex.c:76: warning: pointer targets in passing argument 2 of 
'bfb_io_write' differ in signedness
../bfb/bfb_io.h:41: note: expected 'const uint8_t *' but argument is of type 
'char *'
multi_cobex.c:78: warning: pointer targets in passing argument 2 of 
'bfb_io_write' differ in signedness
../bfb/bfb_io.h:41: note: expected 'const uint8_t *' but argument is of type 
'char *'
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I.. 
-I/usr/local/include -I.. -I../includes -DOBEXFTP_DEBUG=5 -g -O0 -W -Wundef 
-Wmissing-declarations -Wmissing-prototypes -Wall -MT multi_cobex.lo -MD -MP 
-MF 
.deps/multi_cobex.Tpo -c multi_cobex.c -o multi_cobex.o /dev/null 21
/bin/bash ../libtool --tag=CC --mode=link /usr/bin/gcc -I/usr/local/include 
-I.. 
-I../includes -DOBEXFTP_DEBUG=5 -g -O0 -W -Wundef -Wmissing-declarations 
-Wmissing-prototypes -Wall   -o libmulticobex.la -rpath /usr/local/lib 
-no-undefined -version-info 1\:1\:0 multi_cobex.lo -L/usr/local/lib -lopenobex 
../bfb/libbfb.la
libtool: link: rm -fr  .libs/libmulticobex.a .libs/libmulticobex.la 
.libs/libmulticobex.lai .libs/libmulticobex.so .libs/libmulticobex.so.1 
.libs/libmulticobex.so.1.0.1
libtool: link: /usr/bin/gcc -shared  .libs/multi_cobex.o   -Wl,-rpath 
-Wl,/home/russell/SRC/obexftp/bfb/.libs -L/usr/local/lib 
/usr/local/lib/libopenobex.so ../bfb/.libs/libbfb.so-Wl,-soname 
-Wl,libmulticobex.so.1 -o .libs/libmulticobex.so.1.0.1
libtool: link: (cd .libs  rm -f libmulticobex.so.1  ln -s 
libmulticobex.so.1.0.1 libmulticobex.so.1)
libtool: link: (cd .libs  rm -f libmulticobex.so  ln -s 
libmulticobex.so.1.0.1 libmulticobex.so)
libtool: link: ar cru .libs/libmulticobex.a  multi_cobex.o
libtool: link: ranlib .libs/libmulticobex.a
libtool: link: ( cd .libs  rm -f libmulticobex.la  ln -s 
../libmulticobex.la libmulticobex.la )
make[2]: Leaving directory `/home/russell/SRC/obexftp/multicobex'
Making all in obexftp
make[2]: Entering directory `/home/russell/SRC/obexftp/obexftp'
if /bin/bash ../libtool --tag=CC --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H 
-I. 
-I. -I..-I/usr/local/include -I.. -I../includes -DOBEXFTP_DEBUG=5 -g -O0 -W 
-Wundef -Wmissing-declarations -Wmissing-prototypes -Wall -MT object.lo -MD -MP 
-MF .deps/object.Tpo -c -o object.lo object.c; \
 then mv -f .deps/object.Tpo .deps/object.Plo; else rm -f 
.deps/object.Tpo; exit 1; fi
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I.. 
-I/usr/local/include -I.. -I../includes -DOBEXFTP_DEBUG=5 -g -O0 -W -Wundef 
-Wmissing-declarations -Wmissing-prototypes -Wall -MT object.lo -MD -MP -MF 
.deps/object.Tpo -c object.c  -fPIC -DPIC -o .libs/object.o
object.c:39: error: parameter 1 ('obex') has incomplete type
object.c: In function 'obexftp_build_info':
object.c:39: warning: unused parameter 'obex'
object.c: At top level:
object.c:73: error: parameter 1 ('obex') has incomplete type
object.c: In function 'obexftp_build_get':
object.c:73: warning: unused parameter 'obex'
object.c: At top level:
object.c:125: error: parameter 1 ('obex') has incomplete type
object.c: In function 'obexftp_build_rename':
object.c:125: warning: unused parameter 'obex'
object.c: At top level:
object.c

Re: builddir

2010-11-14 Thread Russell Shaw

On 15/11/10 01:10, Ralf Wildenhues wrote:

Hello Russell,

* Russell Shaw wrote on Sun, Nov 14, 2010 at 02:49:07AM CET:

In a Makefile.in generated by automake 1.9.6, it defines
top_builddir ok, but builddir is used but not defined in there.

This causes problems, because the automake manual says:

— Variable: builddir
 Rigorously equal to ‘.’. Added for symmetry only.


Automake 1.9.6 is very old.  Presumably you're using an ancient version
of Autoconf too, please state which.  Normally I'd say upgrade and
retry, but I might look at this if you post a small reproducer.


Hi,
I had a closer look at my system and found the debian alternatives
system was pointing at an old version. I set it right now thanks.



builddir

2010-11-13 Thread Russell Shaw

Hi,
In a Makefile.in generated by automake 1.9.6, it defines
top_builddir ok, but builddir is used but not defined in there.

This causes problems, because the automake manual says:

— Variable: builddir
Rigorously equal to ‘.’. Added for symmetry only.



[openobex-users] Nokia 2162

2010-11-12 Thread Russell Shaw
Hi,
When i mount the 2162, i get a heap of question-marks:

sudo obexfs -t /dev/Nokia -u 1 /phone


russ...@main~: ls -l /
ls: cannot access /phone: Permission denied
total 116
drwxr-xr-x   2 root root   4096 Nov  3 23:05 bin
drwxr-xr-x   3 root root   4096 Nov 12 18:26 boot
...
d?   ? ?? ?? phone


I try to compile obexftp-0.22 but get:

russ...@main~/SRC/obexftp-0.22: make
make  all-recursive
make[1]: Entering directory `/home/russell/SRC/obexftp-0.22'
Making all in bfb
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/bfb'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/bfb'
Making all in multicobex
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/multicobex'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/multicobex'
Making all in obexftp
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/obexftp'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/obexftp'
Making all in apps
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/apps'
if /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../includes 
-DOBEXFTP_DEBUG=5 -g -O0 -W -Wundef -Wmissing-declarations -Wmissing-prototypes 
-Wall -MT obexftpd.o -MD -MP -MF .deps/obexftpd.Tpo -c -o obexftpd.o 
obexftpd.c; \
 then mv -f .deps/obexftpd.Tpo .deps/obexftpd.Po; else rm -f 
.deps/obexftpd.Tpo; exit 1; fi
obexftpd.c:81: error: expected '=', ',', ';', 'asm' or '__attribute__' before 
'*' token
obexftpd.c: In function 'start_server':
obexftpd.c:891: warning: implicit declaration of function 
'BtOBEX_ServerRegister'
obexftpd.c:891: error: 'bt_src' undeclared (first use in this function)
obexftpd.c:891: error: (Each undeclared identifier is reported only once
obexftpd.c:891: error: for each function it appears in.)
make[2]: *** [obexftpd.o] Error 1
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/apps'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/russell/SRC/obexftp-0.22'
make: *** [all] Error 2

--
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
___
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users


[openobex-users] Nokia 6120

2010-11-12 Thread Russell Shaw
Hi,
When i mount the 6120 (not 2162), i get a heap of question-marks:

sudo obexfs -t /dev/Nokia -u 1 /phone


russ...@main~: ls -l /
ls: cannot access /phone: Permission denied
total 116
drwxr-xr-x   2 root root   4096 Nov  3 23:05 bin
drwxr-xr-x   3 root root   4096 Nov 12 18:26 boot
...
d?   ? ?? ?? phone


I try to compile obexftp-0.22 but get:

russ...@main~/SRC/obexftp-0.22: make
make  all-recursive
make[1]: Entering directory `/home/russell/SRC/obexftp-0.22'
Making all in bfb
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/bfb'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/bfb'
Making all in multicobex
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/multicobex'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/multicobex'
Making all in obexftp
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/obexftp'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/obexftp'
Making all in apps
make[2]: Entering directory `/home/russell/SRC/obexftp-0.22/apps'
if /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../includes 
-DOBEXFTP_DEBUG=5 -g -O0 -W -Wundef -Wmissing-declarations -Wmissing-prototypes 
-Wall -MT obexftpd.o -MD -MP -MF .deps/obexftpd.Tpo -c -o obexftpd.o 
obexftpd.c; \
 then mv -f .deps/obexftpd.Tpo .deps/obexftpd.Po; else rm -f 
.deps/obexftpd.Tpo; exit 1; fi
obexftpd.c:81: error: expected '=', ',', ';', 'asm' or '__attribute__' before 
'*' token
obexftpd.c: In function 'start_server':
obexftpd.c:891: warning: implicit declaration of function 
'BtOBEX_ServerRegister'
obexftpd.c:891: error: 'bt_src' undeclared (first use in this function)
obexftpd.c:891: error: (Each undeclared identifier is reported only once
obexftpd.c:891: error: for each function it appears in.)
make[2]: *** [obexftpd.o] Error 1
make[2]: Leaving directory `/home/russell/SRC/obexftp-0.22/apps'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/russell/SRC/obexftp-0.22'
make: *** [all] Error 2

--
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
___
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users


Re: [Mesa-dev] Dri api

2010-11-10 Thread Russell Shaw

On 11/11/10 01:36, Jerome Glisse wrote:

On Wed, Nov 10, 2010 at 2:36 AM, Russell Shawrjs...@netspace.net.au  wrote:

Hi,
I compiled mesa from sources.

In mesa/src/driclient/src/XF86dri.c, if i use the
api to make a drawable, how can i find the buffer
pixel format?


See my other reply on the wayland mailing list but i think you are
trying to achieve somethings that we could not recommand. As i already
said dri is intented to be an api btw 2 part of the same driver, at no
time it was designed to allocate buffer for general use and there is
no way to allocate buffer in hw independant maner.

If you really would like to be able to do direct pixel banging on
buffer that can the be use by the GPU (i guess use case here is for
wayland) i think you would need to build a library that can provide an
API and have backend for each GPU we care about (amd,intel,nvidia).
Such library could be an add on to the drm one and likely leave in the
same repository.


Hi,
I can do all the openVG/GL stuff without a gpu. Because there
is an ever increasing number of embedded micros with GPUs, there
is less need to emulate a GPU-less system. Therefore, i'll increase
my minimum requirements.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Dri2 buffer format

2010-11-08 Thread Russell Shaw

Hi,
How should the format of a DRI2 buffer be determined?


http://www.x.org/releases/current/doc/dri2proto/dri2proto.txt

DRI2ATTACH_FORMAT { attachment: CARD32
format: CARD32 }

The DRI2ATTACH_FORMAT describes an attachment and the associated
format.  'attachment' describes the attachment point for the buffer,
'format' describes an opaque, device-dependent format for the buffer.


xorg-server-1.7.7/hw/xfree86/dri2/dri2ext.c


If it's opaque, how does a user or library know what bytes are red/green/blue
so that you can draw a line in the right colour?
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com



[Mesa-dev] X Dri

2010-11-08 Thread Russell Shaw

Hi,
How should the format of a DRI2 buffer be determined?


http://www.x.org/releases/current/doc/dri2proto/dri2proto.txt

DRI2ATTACH_FORMAT { attachment: CARD32
format: CARD32 }

The DRI2ATTACH_FORMAT describes an attachment and the associated
format.  'attachment' describes the attachment point for the buffer,
'format' describes an opaque, device-dependent format for the buffer.


xorg-server-1.7.7/hw/xfree86/dri2/dri2ext.c


If it's opaque, how does a user or library know what bytes are red/green/blue
so that you can draw a line in the right colour?


I want to bit-bang pixels in an X app on the local machine, without any
intervening GL drivers.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Dri2 buffer format

2010-11-08 Thread Russell Shaw

Hi,
How should the format of a DRI2 buffer be determined?


http://www.x.org/releases/current/doc/dri2proto/dri2proto.txt

DRI2ATTACH_FORMAT { attachment: CARD32
format: CARD32 }

The DRI2ATTACH_FORMAT describes an attachment and the associated
format.  'attachment' describes the attachment point for the buffer,
'format' describes an opaque, device-dependent format for the buffer.


xorg-server-1.7.7/hw/xfree86/dri2/dri2ext.c
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: XInput

2010-11-04 Thread Russell Shaw

On 05/11/10 10:21, Peter Hutterer wrote:

On Thu, Nov 04, 2010 at 10:35:29PM +1100, Russell Shaw wrote:

In XInput2, when i get a XI_HierarchyChanged event after plugging in
another mouse, is there a way to get a unique identifier for each device
such as a brand and model number?


no, the device ID is unfortunately the only identifier you have.
model/vendor information, etc. isn't exported by any driver yet.

Cheers,
   Peter


When i start my program that uses two mice for different functions
(one in each hand), it would be useful for them both to be assigned
the correct role whenever the program is started, regardless of
whatever other devices have been plugged in since the last session.


Hi,
A unique ID would be useful.
I found this in linux-2.6.31.1/drivers/input/evdev.c:

  if (_IOC_NR(cmd) == _IOC_NR(EVIOCGUNIQ(0)))
return str_to_user(dev-uniq, _IOC_SIZE(cmd), p);

It was not clear how to integrate it in to xf86-input-evdev/src/evdev.c


When i start a program that uses a left-hand puck (i'm using a mouse) and
a normal right-hand mouse, i'll have to make a pop-up widget appear every
time so that the user can choose which mouse does what. It would be good
if the application can store the settings for a unique device id.

I used to use this mouse and puck arrangement around 1990 on a Human
Interface Loop Bus (HIL Bus) on a HP 9000 Apollo workstation. It was
a standard way of running CAD programs and greatly reduced mouse-finger
fatigue. The software was killed for political reasons, but the useability
was far better than the toy Windows stuff around now.

http://wiki.parisc-linux.org/HIL
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: Slow Radeon on upgrade

2010-11-03 Thread Russell Shaw

Justin P. Mattock wrote:

On 11/02/2010 10:42 PM, Russell Shaw wrote:

I commented out all of xorg.conf, but it didn't fix it.


maybe try the ati driver instead of the radeonhd?


Hi,
I messed around with xorg.conf settings and tried reinstalling
the old driver and xorg-core resulting in a locked pc at bootup.

After unsetting various things and rinstalling stuff, i just got
it to boot up with the new xorg and driver and now everything's
running fast.

Don't know what caused that.
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: Slow Radeon on upgrade

2010-11-02 Thread Russell Shaw

I commented out all of xorg.conf, but it didn't fix it.
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: How to properly use XGrabKey to get a program hotkey

2010-10-27 Thread Russell Shaw

cheshirekow wrote:

Hello,

My goal is to have a program that sleeps in the background but can be 
activated by the user via some hotkey. From digging around the Xlib 
manual and the Xlib O'reilly manual, I gather that the correct way to to 
this is with XGrabKey. However my understanding of the process is 
incorrect as a simple proof of concept does not work.


My understanding is that if I call XGrabKey with the root window as the 
grab_window, and owner_events false, then whenever my hotkey is pressed 
the event will be sent *only* to the root window.


 If I then select
KeyPress events from the root window, and then listen for X events, I 
should get a key press event when the hotkey is pressed. I've pasted a 
minimal example below.


What I expect is that when the program is run, regardless of what window 
has focus, if Ctrl+Shift+K is pressed, my program should output Hot key 
pressed! in the console, and then terminate.


Furthermore, it is my understanding that if the XGrabKey fails, the 
default error handler will display a message, and since it does not I am 
assuming that the call succeeds.


Obviously, my understanding is flawed somehow. Can anyone point me in 
the right direction?


This will only work if the window manager or the window with focus doesn't
already grab the same keys. Does the example work without a window manager
running?
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: gEDA-user: new footprint guidelines

2010-10-06 Thread Russell Shaw

John Doty wrote:

On Oct 1, 2010, at 3:55 PM, Rick Collins wrote:


Oh, I almost forgot, NEVER ask a PhD anything to design PCBs.  What the
heck are you thinking???


Speaking as a physicist, let me comment.

1. Learning to do a variety of engineering tasks is an important part of an
experimental physicist's education. A good experimental physicist must be a
more versatile engineer than most engineering specialists. This is exactly
the kind of job a  Ph.D. student *should* be doing.

2. The specific problem mentioned was a super noiseless detector circuit.
Few EE's understand detector physics or noise physics well enough to tackle
this.


Most PHDs when challenged to do something outside of a pretty narrow field,
might as well be qualified as a Post-Hole Digger.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: AC_CACHE_CHECK

2010-09-05 Thread Russell Shaw

Thomas Dickey wrote:

On Sun, 5 Sep 2010, Russell Shaw wrote:


Hi,
When should AC_CACHE_CHECK be used? Whenever the user uninstalls
something, wouldn't the cache become invalid?


...only if the user happened to uninstall something during the configure
process.  After that, AC_CACHE_CHECK is irrelevant.


But if the user uninstalls libfoo then later re-runs ./configure,
won't libfoo still be assumed to be installed?

___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


AC_CACHE_CHECK

2010-09-04 Thread Russell Shaw

Hi,
When should AC_CACHE_CHECK be used? Whenever the user uninstalls
something, wouldn't the cache become invalid?

___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


Re: gEDA-user: wishful UI

2010-08-05 Thread Russell Shaw

Andrew Poelstra wrote:

I've been learning the code base and testing out new ideas, and it
looks like I'll have to change the base HID code to support layer
groups. So there's some more design work to run by you guys before
I can do any real work:

My vision is this: the current drawing area will become a tabbed drawing
area, with each tab a different Group. Each Group is a logically connected
subset of the PCB - so for example, you might have a power supply Group,
a USB port Group, an amplifier Group, etc.

Each Group can span multiple physical layers.

The first Group is the All Group, that encompasses the entire PCB. It
cannot be deleted. This simplifies the design and also means that if you
don't use the Grouping feature at all, your workflow will be exactly the
same as it always was.

I hope to use Cairo to draw the viewport, and make the non-current Groups'
components display as semi-transparent.

Also, you will be able to open individual elements in their own Group, as
well as open/save/edit them as such. This eliminates the awkward buffer
manipulations that are currently needed to work on elements.


Ignoring the All Group, the following things should be set on a
per-Group basis:

  o Group Name
  o Group-specific routing styles
  o Visible physical layers
  o Active physical layer/routing style
  o DRC rules (?)
  o Undo/Redo buffer (?)

The following should be set globally:

  o PCB name, board size, etc.
  o Physical layers (numbers, names, colors)
  o Global routing styles 



That's what I've got now. What you you guys think?


Should have a left-hand panel tree view of the files in a project:

http://en.wikipedia.org/wiki/Tree_view


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: Autotools book published

2010-07-26 Thread Russell Shaw

John Calcote wrote:

 Hi all.

Just a quick note to let you all know that my Autotools book has been
published (finally!) by No Starch Press:

http://nostarch.com/autotools.htm

I apologize in advance for the apparent self-promoting tone of this
message but I know there are folks out there interested in hearing about
it. [Note also that I've only sent this note to the autoconf list in
order to reduce duplication.]


Mine came from Amazon in the post yesterday;)

___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


Re: desktop schemas review [was: Re: GSettings migration status]

2010-07-05 Thread Russell Shaw

Alexander Larsson wrote:

On Sat, 2010-07-03 at 13:25 -0400, Ryan Lortie wrote:

On Sat, 2010-07-03 at 13:37 +0200, Christian Persch wrote:

This is a common error. Filenames need to be stored as ay and *NOT*
s (since s is UTF-8). (I think this needs some enhancement in
glib-compile-schemas to be able to still put a string in default.)

I'm not sure I buy into your hardline stance on this one.

I think it's not unreasonable to require that all filenames specified in
the settings be in a valid encoding (whatever that encoding is) on their
own filesystem (where in a valid encoding means converts correctly to
and from unicode).  In that case, utf8 is appropriate here.


This is not right at all. Anything that does that is broken for two
reasons:

1) Technically for unix all filenames are valid if they are byte
strings without the characters zero and '/'. If you enforce anything
else on your filenames there *will* be actual files on the system that
you can't store references too. I've fixed soo many bugs from people
thinking filenames are utf8 strings, they are just not, they are byte
arrays. This sucks, but its reality and we have to handle it.

2) Storing a converted pathname (for instance from filename encoding
to utf8) is a bad idea, even if it succeeds. First of all, the encoding
is runtime dependent (env vars) so may change over time, secondly
roundtripping to unicode and back does not necessarily get you the same
exact bytes back, so you might not be able to actually open the file.

I've spent lots of work getting this right in e.g. gvfs, where raw
filenames are G_FILE_ATTRIBUTE_TYPE_BYTE_STRING, but e.g.
standard::display-name is G_FILE_ATTRIBUTE_TYPE_STRING. Please don't
break this. Filenames are not unicode strings, they are byte array
identifiers.


Given that users may store file names in arbitrary encodings,
what is the best way to determine the encoding for display in
a file viewer?
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Fullscreen windows - weird behaviour

2010-05-18 Thread Russell Shaw

Andreas Falkenhahn wrote:

Andreas Falkenhahn wrote:

Hi,

I have the following setup:


...


Anybody got a clue what's going on there?

You could add test code that uses XQueryTree() to find out why.

http://tronche.com/gui/x/xlib/window-information/XQueryTree.html


Hmm, I'm not sure if this would help. What is really confusing me is the
fact that even when I call XGrabPointer() on my main window (mode set to
GrabModeAsync), I can still get the task bar to pop up. How can this
happen? Isn't XGrabPointer() supposed to intercept delivery of all mouse
events excepting the window specified in XGrabPointer()?

When I call XGrabPointer() without changing the screen mode using
XF86VidModeSwitchToMode() it works exactly like that: Everything on the
desktop except my window seems frozen. Clicking on the taskbar doesn't
trigger any action. It's completely dead. However, when calling
XGrabPointer() after XF86VidModeSwitchToMode(), it's possible to pop the
task bar to the front. It's pretty weird because I thought that after
XGrabPointer() the mouse would be completely mine until I call
XUngrabPointer().


Does XGrabPointer() return GrabSuccess? It won't if something else has
grabbed it.

http://tronche.com/gui/x/xlib/input/XGrabPointer.html
___
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: gEDA-user: A little puzzled about the purpose of gschem

2010-04-29 Thread Russell Shaw

Gene Heskett wrote:

On Wednesday 28 April 2010, Dave McGuire wrote:

On Apr 28, 2010, at 3:40 PM, John Doty wrote:

Well, you started out complaining about a 741 model. I'd call that
a very rare, obsolete part: I haven't actually seen one in a
circuit in over 30 years. I guess it's still in textbooks (read
Stephen J. Gould's rants about textbook authors' tendency to copy
from previous textbooks sometime), but why would anyone use it in a
new design?

  Very rare?!  I see 741s everywhere.  WTF?

 -Dave

Sorry to bust the bubble, but he's right.  The 741 is well over 40 years old, 
and its open loop first response pole, where the 6db per octave rolloff 
begins, is a measly 10 hertz.


The opamp is 1MHz unity BW. The higher the gain, the lower the first pole.
An even better opamp would roll off at 1Hz.

Today there are $1.00 opamps with a working 
gain of 20 when feedback is applied, with output slew rates of several 
thousand volts per second.  Thats working bandwidth to several hundred 
megahertz at the sort of levels found in either a modern broadcast audio 
mixer, or a production video switcher, and either of those are driving 60 
ohms for audio, or 75 for video.


Those are video buffers. They have much less closed-loop gain and inferior
offset voltages. They're also noisy and are very prone to oscillation with
any stray capacitance or with certain feedback resistors.

Slew rate limits alone in the 741 means you can't honestly ask it for more 
than a volt of output at full audio bandwidth.


dV/dt = 2.pi.Vm

at 20kHz and 1V/us, Vm=8Vpk

quite ok for most apps below 5Vpk.

At 3 volts the slew rate 
distortion is so bad even these 75 year old ears can hear it.  Even a TLO-72 
or 74 can mop the floor with a 741, and output a +- 15 volt rail to rail 
signal doing it, but into the old 600 ohm std load.


LM741 has 1mV OS typical. TL072 is 3mV

LM741 would be better than TL072 for control apps, and cheaper.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: Building prog first

2010-03-23 Thread Russell Shaw

Steffen Dettmer wrote:

On Mon, Mar 22, 2010 at 4:44 PM, Reuben Thomas r...@sc3d.org wrote:

Not true. automake does not have explicit support for building
programs with the host compiler when cross-compiling, but I
have done this successfully in the past when I needed precisely
to build a program on the host when cross compiling, using
binutils's BFD_CC_FOR_BUILD macro. It's a pity some version of
this macro isn't in autoconf, or even autoconf-archive; I shall
do the latter.


I guess this is a hack and a burden to maintain.

When cross-compiling, why compiling a local tool?
Isn't the correct way to natively compile the local tool,
then use it to cross-compile the package?


This illustrates a weirdness of autotools: poor support for
installing interpreted languages, and also conversely for
build-time compiled programs.


Yes, also for coffee-cooking there is poor support only. :-)

I don't think build-time compiled C programs shall be suppored
while cross compiling. I think it already is complex enough.
Otherwise you had to do all checks twice and end up in many
variables with confusing names, and those who are not
cross-compiling probably accidently will mix them.


I though of perl, but (A), i don't like slow tools,


(I think Perl is fast)


(C), i find making build-programs
in C much more concise than scripting and i can debug it in ddd/gdb.


You can debug Perl in DDD.


This is interesting, as it doesn't match mine or
commonly-reported experience (translating my build-time
programs from C to Perl made them shorter, easier to read and
fix, and no slower to run, although I wasn't doing more than
grepping 15k lines of C and writing some of it back out again).



$ time perl -e \
  'for($n=0;$n45;$n++) { printf %08d %60s EOL\n, $n, ; }'  x

real0m0.713s

$ cat x.c
#include stdio.h
int main(void)
{
   int n;
   for(n=0; n45;n++) {
  printf(%08d %60s EOL\n, n, );
   }
   return 0;
}

$ time make x
gcc -Wall -Wmissing-prototypes -fstrict-aliasing -D_GNU_SOURCE -ansi
-ggdb  -ggdb  x.c   -o x
real0m0.076s

$ time ./xx2
real0m0.301s


so 713ms vs. 377 ms.

Interesting that up to around 100k Perl is even faster:

$ time perl \
  -e 'for($n=0;$n10;$n++) { printf %08d %60s EOL\n, $n, ; }'  x
real0m0.167s


$ time make x
real0m0.081s
$ time ./xx2
real0m0.079s


(of course those figures are far away from being exact; they just prove
how fast perl is: same magnitude as C)


Hi,
I'd think that printf() in perl would be mapped to the same printf()
in C lib stdio, and because this is the dominant code, the times are
similar.

What i had in mind is the efficiency of regular expression execution
in perl, compared to hard-coded parsing in C.

I will try perl in ddd/gdb some time.




Re: Building prog first

2010-03-22 Thread Russell Shaw

Steffen Dettmer wrote:

* On Sun, Mar 21, 2010 at 10:27 AM, Ralf Wildenhues wrote:

noinst_PROGRAMS = unimain
unimain_SOURCES = unimain.c

unidata.tab.c: unimain$(EXEEXT) /usr/share/unicode/UnicodeData.txt
  ./unimain$(EXEEXT) $  $@

BTW, execution of built programs like this makes your package unsuitable
for cross-compilation.  Just so you're aware of that.


Assuming unidata.tab.c is a C-code table containing the
information from UnicodeData.txt, I think it could be better to
generate it by some shell code (maybe inside the Makefile.am,
saving a tool) or to use perl (for the price of adding perl to
the build dependencies) or, if UnicodeData rarely changes, add
unidata.tab.c to the package and have some `maintainer only'
helper target to build it (with unidata.tab.c as distributed
source file). People who don't care about unidata.tab.c can build
the package even without UnicodeData.txt (if this makes any
sense, I don't know what this is for of course :))


I though of perl, but (A), i don't like slow tools, (B), unidata.tab.c
is 5.6MBytes and 450k lines long, (C), i find making build-programs
in C much more concise than scripting and i can debug it in ddd/gdb.

The size of unidata.tab.c precludes distributing it. I could do
more work on compacting it, but i have already done that to a degree.




Building prog first

2010-03-21 Thread Russell Shaw

Hi,
I want the unimain program built first, then use it to generate
unidata.tab.c, which is then compiled and linked into librunicode.la

  bin_PROGRAMS = unimain
  unimain_SOURCES = unimain.c

  lib_LTLIBRARIES = librunicode.la

  librunicode_la_SOURCES = runicode.c runicode.h

  #nodist_librunicode_la_SOURCES = unidata.tab.c

  #BUILT_SOURCES = unidata.tab.c

  unidata.tab.c: /usr/share/unicode/UnicodeData.txt
  ./unimain $  $@


How do i get unimain built first? I get the error:

  make  all-am
  make[1]: Entering directory `/home/russell/librunicode/src'
  ./unimain /usr/share/unicode/UnicodeData.txt  unidata.tab.c
  /bin/bash: ./unimain: No such file or directory
  make[1]: *** [unidata.tab.c] Error 127
  make[1]: Leaving directory `/home/russell/librunicode/src'
  make: *** [all] Error 2




Re: Building prog first

2010-03-21 Thread Russell Shaw

Ralf Wildenhues wrote:

Hello Russell,

* Russell Shaw wrote on Sun, Mar 21, 2010 at 07:06:00AM CET:

I want the unimain program built first, then use it to generate
unidata.tab.c, which is then compiled and linked into librunicode.la

  bin_PROGRAMS = unimain
  unimain_SOURCES = unimain.c



  unidata.tab.c: /usr/share/unicode/UnicodeData.txt
  ./unimain $  $@


Then you need a dependency from unidata.tab.c on unimain:

unidata.tab.c: unimain$(EXEEXT) /usr/share/unicode/UnicodeData.txt
./unimain$(EXEEXT) $  $@

Furthermore, please don't hard-code absolute paths like
  /usr/share/unicode/UnicodeData.txt

in your makefiles.  Make them configurable by configure.  Maybe your
users don't have root rights on their system but have the file installed
below their home somewhere?


Ok.
I did: AC_CHECK_FILE([/usr/share/unicode/UnicodeData.txt], [], [])

In configure, i get:

  if test x$ac_cv_file__usr_share_unicode_UnicodeData_txt = xyes; then :
  fi

Shouldn't this be:

  if test x$ac_cv_file__usr_share_unicode_UnicodeData_txt = xyes; then :
  fi




Re: Building prog first

2010-03-21 Thread Russell Shaw

Ralf Wildenhues wrote:

* Russell Shaw wrote on Sun, Mar 21, 2010 at 09:26:44AM CET:

Ralf Wildenhues wrote:

* Russell Shaw wrote on Sun, Mar 21, 2010 at 07:06:00AM CET:

 bin_PROGRAMS = unimain
 unimain_SOURCES = unimain.c



unidata.tab.c: unimain$(EXEEXT) /usr/share/unicode/UnicodeData.txt
   ./unimain$(EXEEXT) $  $@

Ok, that works thanks:)

However, make install installs unimain into /usr/local/bin

How do i stop this program from being installed?


Use noinst_PROGRAMS instead of bin_PROGRAMS.  Be encouraged to read the
fine manual.


But it is somewhat big, and i had already searched through the online
one a lot first. It is no wonder it takes noobs so long to get productive.


BTW, execution of built programs like this makes your package unsuitable
for cross-compilation.  Just so you're aware of that.


Ok. I assume then that you can't build the tool for the host system while
the generated files are compiled for the target system?




Re: Building prog first

2010-03-21 Thread Russell Shaw

Ralf Wildenhues wrote:

* Russell Shaw wrote on Sun, Mar 21, 2010 at 11:18:03AM CET:

Ralf Wildenhues wrote:

Use noinst_PROGRAMS instead of bin_PROGRAMS.  Be encouraged to read the
fine manual.

But it is somewhat big, and i had already searched through the online
one a lot first. It is no wonder it takes noobs so long to get productive.


I'm not sure how to help that.  If more documentation makes people less
likely to look at it, then what would you suggest in order to improve
upon the situation?  Is the documentation not structured well enough?
Does the Autotools Introduction chapter in the Automake manual not
help get a basic grasp?

I agree that the initial learning steps may not be easy for Automake,
but I don't see how to make Automake a lot easier without also ripping
out much of the functionality.  So turning that knob is fairly unlikely.


Hi,
I was limping along for years learning autoconf/make in bits until this
tutorial came out

  Autotools: a practitioner's guide to Autoconf, Automake and Libtool

http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool

I realized a lot of useful things after that. The main thing that makes
it easy is that a real project is stepped through with lots of side discussions,
and high-level overviews put things in to perspective. I'd really like to have
a hard-copy book of that tutorial.

After that, i could understand the autoconf manual. I was on dos/windows
up to nearly yr2000 or so, so i had to learn unix programming, shell
programming, make-file programming, m4, how unix processes work etc,
to be able to look in generated Makefiles and configure and see from
that what errors i was making in configure.ac and automake.am.
Learning too many things simultaneously, but i know now.


BTW, execution of built programs like this makes your package unsuitable
for cross-compilation.  Just so you're aware of that.

Ok. I assume then that you can't build the tool for the host system while
the generated files are compiled for the target system?


First off, allow me to clarify the nomenclature as it is used in GNU
software:
- the build system is the one you run configure and 'make all' on,
- the host system is the one that the programs which 'make all' normally
  generates and installs, will run on later,
- the target system does not exist.  Never.  Unless your package happens
  to be a compiler or linker (or similar).  Then, the target system is
  the one for which your installed compiler/linker will generate code
  for.

With that, your sentence above should have been
  Ok. I assume then that you can't build the tool for the build system while
  the generated files are compiled for the host system?

Not straight-forwardly, no.  Once you've got your basic package working
and cross compilation support is the only thing missing, please come
back and we'll explain.


Ok. Thanks for the help.

--
regards, Russell




Re: Building prog first

2010-03-21 Thread Russell Shaw

Alfred M. Szmidt wrote:

Have you tried reading `(automake) Autotools Introduction'? It is part
of the automake manual.


Hi,
I printed out all the autotools manuals and have read every page of
them more than once. It was a while ago, so it's easy to forget things.
Searching the online manual isn't all successful at times, but i've
figured out a fair bit of it now.




autoscan

2010-03-20 Thread Russell Shaw

Hi,

I ran autoscan and it gives:

  configure.ac: warning: missing AC_PROG_RANLIB wanted by: ltmain.sh:1601


So i added AC_PROG_RANLIB and ran autoreconf and now it says:


autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy

libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'

autoreconf: running: /usr/bin/autoconf
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
autoreconf: Leaving directory `.'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk


I'm using autoconf 2.65


___
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf


Re: Problems with X.org and incompatibilities with in-house software

2010-02-28 Thread Russell Shaw

Richard Brown wrote:

Mikhail Gusarov wrote:

Twas brillig at 19:05:25 28.02.2010 UTC-05 when rbrown1...@gmail.com did
gyre and gimble:

 RB So of these disabled, removed extensions. How many of these are
 RB disabled as a result of actual broken code, vs, how many are
 RB disabled because, we don't like how it looks?

Most of them were removed because they were broken for years (literally)
and nobody complained.


If the extensions are removed because of broken code, i can understand, 
especially for the extensions which have duplicitous functionality which 
can be obtained by using other X11 features, i do not ask for time to 
expended to get broken code working.


But, if the extensions are in working order, there is no reason or 
justification to remove them, even if their functionality is duplicated, 
different applications may be tied to a certain API. We dont like how 
it looks is not a good reason to remove extensions.


Xprint, was this actually broken code, for instance. Ximage, was this 
broken code? XEVIE, again, was that broken code.


What are you referring to by Ximage ?


If the extension is broken code, dont waste your time, Im not asking you 
to spend time on it, we will do our best here to move off of them. But, 
if the extension is in working order, why not put it back in?


To justify removing an extension, the extension needs to be in a broken, 
non working order, and that it is causing technical problems for the 
rest of the X system,  and to require extensive reworking, and apps can 
implement what it needs in another way. We dont like how it looks, or 
we dont think people use this, are not good justifications.


Since X.org officially has had all of these extensions until very 
recently, apparently although they may have been in a non working state, 
at the same time, they were not causing a problem, so I cannot see the 
action as being justified to remove them.

___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: Problems with X.org and incompatibilities with in-house software

2010-02-28 Thread Russell Shaw

David Gerard wrote:

On 1 March 2010 01:28, Richard Brown rbrown1...@gmail.com wrote:

Russell Shaw wrote:



What are you referring to by Ximage ?



Ximage extension to the X server. It has been superceded by MIT shared
memory. However, some ancient apps may still use it.



It's not clear that *anyone* ever manage to use it successfully.

http://en.wikipedia.org/wiki/X_Image_Extension


Interesting

http://web.archive.org/web/20080413140042/http://people.freedesktop.org/~jg/roadmap.html#mozTocId778727
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: Remarks on gtk docs

2010-02-17 Thread Russell Shaw

Ed James wrote:

Joost, and others,

   I tried learning to use gtk, gdk, cairo, pango, etc several years ago and was
frustrated by the difficulty in getting good docs, sample code, etc.  Even worse
was finding that constant change meant me having to rewrite code fairly
often.  Note that I'm an old guy who has written code for a living since I was
a young guy.  But this has been the most difficult venue in which I've tried
to work.  I feel and share your pain in producing something of quality and
lasting value.  I know it can be done, but I pretty much work alone, and
it's not easy.

   I switched to writing my own set of widgets in C++ which more or less
look and act somewhat like Java's AWT, but nowhere near as powerful yet.
I've got simple projects like a telnet client working, but I feel like
I'm mining
gold with a fork.

   My one big question to this list is (and no disrespect is meant), is there a 
elist
similar to this one dedicated to Xlib programming?  This list does have many
very talented people, some of whom I'm in awe of.  But I'm veering
into a different direction and just need pointer towards that direction.


...

xorg would be as close as any:
  xorg mailing list
  x...@lists.freedesktop.org
  http://lists.freedesktop.org/mailman/listinfo/xorg
___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: Dual-head config broke with update to 1.4.2

2010-02-16 Thread Russell Shaw
Martin Cracauer wrote:

...

 Anyway...
 
 I will also spend some time this week to test the available Window
 managers to see where they stand wrt xrandr and report back.  I
 noticed that fvwm2 seems broken enough to not even get keyboard focus
 over to the added desktops, ever.  I also don't plan to go devhead
 GNOME or something like that.  E17 I will build if anybody please
 tells me it is more xrandr aware than E16.
 
 I want to make sure that people understand that if there is a WM
 available that does xrandr with virtual desktops, has a purely file
 based configuration option and doesn't miss too much functionality I
 need I will happily switch to xrandr.  It's not that I don't stand in
 front of a projector every now and then and curse that I have to start
 a second X11 server and can't move my clients between the two.

On my todo list is to make a window manager where any application can
be set to be mapped only in a specific area of a screen. This is so i
can simulate dual-screen operation on a laptop screen. It will be a
while before i get around to it.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: X11 fullscreen

2010-02-04 Thread Russell Shaw
David Bronaugh wrote:
 Russell Shaw wrote:
 *SNIP*
 
 You have plenty of time on your hands, don't you? This can mean only one 
 thing: You have an idea to sell, in the hopes that people will jump on 
 board and run with it and you won't have to do any work.
 
 I hate to disappoint you, but it doesn't work that way.

Ha, no work you say? I need no one elses work, nor do i need to sell anything.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Remote X

2010-02-02 Thread Russell Shaw
Hi,
Is remote execution of X clients away from the X server still regarded
as a design goal, or does everyone just develop for client applications
that only run on or close to the X server machine?

With a unicode text widget, every time a character is entered, the
line or paragraph(s) need to be moved and/or reshaped. This can mean
sending a few largish bitmaps for every key press. Other toolkits
may add new polygon tesselated glyphs to the XRender cache:

http://www.keithp.com/~keithp/talks/usenix2001/
http://cgit.freedesktop.org/xorg/proto/renderproto/plain/renderproto.txt

With a cursive font, all the cursive glyphs on a line could compress
when the line is close to full, but before the need for a linebreak.
That would stress out the cache advantage of XRender. Another problem
with XRender is that it's computationally expensive for small systems
without polygon hardware.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: Remote X

2010-02-02 Thread Russell Shaw
Patrick O'Donnell wrote:
 Date: Wed, 03 Feb 2010 01:18:01 +1100
 From: Russell Shaw rjs...@netspace.net.au
 User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20091109)
 Sender: xorg-boun...@lists.freedesktop.org

 Is remote execution of X clients away from the X server still regarded
 as a design goal, or does everyone just develop for client applications
 that only run on or close to the X server machine?
 
 I sure hope it is.  I typically run X clients on a variety of machines
 close and far.  It's one of the reasons I like (and depend on) X.  At
 the moment I have windows open on six different machines: the local
 workstation, one on a LAN, four over a VPN to a data center.  Three of
 the latter display at least in part by transferring pixmap data.
 Network round-trip latency to the data center is about 20-23 ms at the
 moment.

Ok. I will keep it as a priority. Other widget toolkits can be pretty
slow over networks i have found. I've wondered if they even bother
thinking about performance over networks.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: X11 fullscreen

2010-01-31 Thread Russell Shaw
Daniel Stone wrote:
 On Sat, Jan 30, 2010 at 12:04:41AM +1100, Russell Shaw wrote:
 Daniel Stone wrote:
 On Fri, Jan 29, 2010 at 10:53:11AM +1100, Russell Shaw wrote:
 One can make their own widget libraries based on Xlib, then write apps
 using the libraries. Nothing hard about that (hard is relative;)
 It's not 'hard' in the sense of being groundbreaking CS research, no,
 but it would take an immense amount of time to get non-Western scripts
 (including bidi), accessibility, copy  paste, full ICCCM compliance
 including doing the right thing with EWMH, input (including input
 methods), selections, etc working properly and correctly.  Oh, and your
 app doesn't look anything like any other app now.
 All that is done to a degree. Theming engine allows apps to look and act
 like any other system. Once you architect the full depth of the problem
 with minimal things that work at every stage, you can add more parallelable
 features whenever required.
 
 OK, sounds like it should be pretty easy for you to knock up?

It works, but needs refining.

I shouldn't use Theming engine. That's a programmer wankword for some kind
of state machine. I do theming with a simple plugin api.

   Ooh yeah, and your app has no concept of double-clicking.  You could
 reimplement it and have it be completely different to the rest of the
 system (different maximum time between clicks, different maximum
 distance between click positions, etc) if you like.  All the little
 stuff like this really does add up.
 Would you like a ctrl-shift+triple-middle-click popup menu? I only make
 useability different if i know it's the right thing to do.
 
 No, I just want double-clicking to work.

It works.

 Please, please, stop telling people to write their own toolkits; it's
 quite possibly the worst advice I've ever heard on this list, to be
 honest.
 I didn't say it would be unconditionally easy, but to solve an
 immediate engineering problem of drawing to a full screen and having
 a menu, Xlib + OpenGL + Glut is fairly easy.
 
 I assume their requirements will eventually run deeper than 'full
 screen, one menu'.
 
 Progressing on from that and creating new widgets is useful innovation
 that can solve many more problems.
 
 No, it's not useful innovation at all.

Why? Try scrolling a list with 1e6 elements with ease.

 All the answers to do anything you want is available on the web, email
 lists, and in books. It's definitely not quick and easy to do the whole
 thing.
 
 No, hence why someone asking how to do something eye-wateringly simple,
 we should recommend they use existing toolkits.

All the answers exist, but any low-grade resource needs searching and
refining. That's why toolkits exist. All the answers in one spot.
Sometimes they're not suitable answers.

 I wouldn't be recommending any of this if i found existing widget toolkits
 easy to make new non-trivial widgets that run well. I've battled widget
 toolkits since Windows95. The code for various existing X toolkits is
 inpenetrable, and made overly complex for porting to non-X systems
 that i don't require. Having thought through many problems, these
 codebases can be more comprehensible, but what's the use when one
 has had to figure out how to make a toolkit in order to figure out
 how to fix one?
 
 He doesn't want non-trivial widgets, he wants full-screen and a menu,
 remember? That's not something that requires fixing a toolkit.

I suggested avoiding full toolkits and use glut. The rest just got
out of hand. I originally went to just use a toolkit when i wanted
to make a simple cad program. That didn't get me anywhere useful.
I don't suggest the usual toolkits for anything non-trivial,
and that needs some amount of speed such as drawing or dragging
objects with a mouse. Qt may be useable for anyone that tolerates C++.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: X11 fullscreen

2010-01-31 Thread Russell Shaw
Clemens Eisserer wrote:
 Man, don't have a job? Is your time worth anything to you?
 And by the way ... I've never read so many *strange* arguments in one
 discussion.
 
 (using shm ximage for normal drawing is bullshit)

What do you suggest? I'd very much like to know.
How do other toolkits draw widgets? I haven't bothered
looking for a long time.

I have found no performance problems with shm ximage
for the way i use it. The results look no different
to any other toolkit.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: X11 fullscreen

2010-01-31 Thread Russell Shaw
Russell Shaw wrote:
 Daniel Stone wrote:
 On Sat, Jan 30, 2010 at 12:04:41AM +1100, Russell Shaw wrote:
 Daniel Stone wrote:
 On Fri, Jan 29, 2010 at 10:53:11AM +1100, Russell Shaw wrote:

...

 He doesn't want non-trivial widgets, he wants full-screen and a menu,
 remember? That's not something that requires fixing a toolkit.
 
 I suggested avoiding full toolkits and use glut. The rest just got
 out of hand. I originally went to just use a toolkit when i wanted
 to make a simple cad program. That didn't get me anywhere useful.
 I don't suggest the usual toolkits for anything non-trivial,
 and that needs some amount of speed such as drawing or dragging
 objects with a mouse. Qt may be useable for anyone that tolerates C++.

Cairo in gtk may be useable to a degree. I still see reports of speed
problems. It is too high-level for me. It has an advantage of drawing to
multiple contexts such as a printer or pdf etc.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: X11 fullscreen

2010-01-31 Thread Russell Shaw
Clemens Eisserer wrote:
 Man, don't have a job? Is your time worth anything to you?
 And by the way ... I've never read so many *strange* arguments in one
 discussion.
 
 (using shm ximage for normal drawing is bullshit)

What do you suggest? I'd very much like to know.
How do other toolkits draw widgets? I haven't bothered
looking for a long time.

I tried and battled XRender for some time. It was poorly documented
to the point that it hardly seems like it was intended to be used
by anyone generally. It also had bugs when i used it. Gtk uses it
iirc, but i won't touch it now. I did read the source in X server.
Glitz and other stuff wasn't a lot of use. I just use opengl if i
need much acceleration.

I have found no performance problems with shm ximage
for the way i use it. The results look no different
to any other toolkit.
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


Re: X11 fullscreen

2010-01-30 Thread Russell Shaw
Daniel Stone wrote:
 On Sat, Jan 30, 2010 at 12:13:23AM +1100, Russell Shaw wrote:
 This means abstracting
 everything with pointer indirections leading to slow
 
 Any performance problems you may have are not caused by excessive
 pointer dereferences.

Not directly. In the context of widget kits, pointer dereferences
often hide from the programmer what low level function is being called,
especially when there's multiple levels. More of a pain to understand
and write code knowing it will run well (sigh broken record).

 feature-bare toolkits.
 
 Which features are you missing from current toolkits?

Foolproof multithreading. I should be able to easily have two
windows being updated from different threads without interaction
problems due to static vars in the toolkit.

Until relatively recently, various toolkits had no kind of centralized
hot-button help system that i could find.

It's way too hard to make a new non-trivial widget when it
should be much easier.

Many widgets have performance problems when you want to scroll
through 10k items from a database. I'm sure they can be made to
work well with enough detailed knowledge of the widget, but to
get that far, i had to figure out how widgets and everything
should work because of lack of know how and documentation.
Makes a toolkit rather pointless when the barrier to being
productive is that high.

I should be able to fork and exec from within a GUI program
without problems. A gui framework baggage that comes with
widgets should be minor in memory cost.

Last time i was using gtk, there was no definitive way of
parsing configuration files (tho there is now i think).

I wanted ligatures and proper kerning in fonts. I wanted
access to all the features in a truetype font file. Last
i looked, pango had little documentation about using it
in great or sufficient detail. Not knowing anything about
non-english text, i had no hope of even knowing what to
ask about pango. A simple block diagram of how it processes
utf8 clusters would have gone a *long* way. Some explanation
of what's in a font file and what contextual analysis is
would have helped a lot.

I wanted more control over hints for the window manager.
That may have already existed, but there was no overview
documentation in gtk about that years ago when i used it.
I had to learn all the fine details of Xlib and icccm
just to figure out what questions to ask.

I wanted printer support. I know now that's rather vague
and out of scope for widgets. There were no gtk docs explaining
that. I used to be using the printer GDI in windows.

There was no support for widget settings persistance, or
docs saying what to do about it. If i last used a file dialog
on a certain directory, i wanted it to open there next time
i used the program. I know what i should do in my own way now.

There was no drawing support in gtk other than gdk which i
found over a year later was xlib calls. Ran slow as hell.
Could use cairo now, but i stick closer to the metal and
use opengl or shm images. Cairo can draw to a printer context
iirc, but i'd rather just generate postscript output directly.

I wanted to have accurate colour management, but i see that
as out of scope of widgets now.

I wanted to programmatically generate menus on the fly
that adapt to the results of database retrieval based on
ealier stages of the menu hierarchy. At some point gtk
changed to XML files to define menus. That totally pissed
me off and was when i abandoned gtk.

I wanted to do window-in-window mdi. Any mention leads to
howls of denial that you don't need it or it's unuseable
because you can't use the app on a dual-head setup.
Well, i wanted to just a drag an embedded mdi document with
a mouse so that it magically becomes a top-level window.
Likewise, i could drag it over the mdi container and it
would become re-embedded and managed by the mdi window
manager.

I wanted to have a widget that acts as a window manager
complete with icon handling. Then i could use a family
of related applications within that shell widget, and
have them all appear there in the same state next time
i log on.

I wanted to make independent X apps such as editors
become embedded in my own widgets. I still think about
that area.

I wanted the whole thing to run well on a 10MHz 8-bit cpu.
It still would if i omit scaleable shaded 3D buttons and
do another suitable small windowing system. Memory limits
for a full unicode font and various window buffers would be
pushing it a bit. I still aim for that efficiency.

I've read the qt book and tried qt and read the stroustrop
book multiple times and know everything about C++ but remain
unimpressed at the complexity of C++ toolkit code compared
to the results achieved. I find C++ harder to understand and
debug compared to C. Gdb had problems with C++.

GObject was unsufficiently documented to achieve a full working
knowledge of what it is doing. I might be able to figure that
out now, but i still find the rest of gtk too tedious to use in C

Re: X11 fullscreen

2010-01-29 Thread Russell Shaw
Daniel Stone wrote:
 On Thu, Jan 28, 2010 at 10:41:04PM +1100, Russell Shaw wrote:
 Forget widget toolkits. They're totally lame wrappers that hide
 all the useful functionality from you, run like a waterlogged
 sheep, and otherwise assume you don't want to get anything really
 nontrivial running this month.

 You should read up on Xlib and OpenGL programming. This may not be
 quick or easy, depending on background, but is worth it if you have
 ongoing use for it.
 
 If you ignore any advice this year, please make it this.

And your point is? Too hard? ;)
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg


  1   2   3   4   5   6   7   >