Re: How to package SuperCollider (or, whats the deal with multiarch)

2005-12-15 Thread Mario Lang
[EMAIL PROTECTED] (Lennart Sorensen) writes:

 On Wed, Dec 14, 2005 at 11:17:30AM +0100, Mario Lang wrote:
 So I guess the final answer is either we figure out
 a preprocessor based patch which makes the necessary
 adjustments for 64bit archs, and leaves the code basically
 the same for 32bit archs, or we don't package SC for 64-bit archs.

 Some defines that are set differently on different archs might work.  I
 haven't looked at the code long enough to find where this whole thing is
 defined in the source code.

source/headers/lang/PyrSlot.h

 Once I find it I might consider trying something silly with it.

-- 
Have fun,
  Mario


pgponhXjCXpqj.pgp
Description: PGP signature


Re: How to package SuperCollider (or, whats the deal with multiarch)

2005-12-14 Thread Mario Lang
Anthony DeRobertis [EMAIL PROTECTED] writes:

 Mario Lang wrote:

 In this specific case, that is a very hypothetical thesis...  I cant really
 imagine an arch which does say 80bit or 128bit floating point math
 faster than 64bit...

 M68K comes to mind, I think that might do 80bit FP faster than it does
 64-bit (because the FPU does 80-bit). I'd have to pull out my M68K books...

Doesn't matter anyway, since M68K is in no way going
to be fast enough to run serious SuperCollider programs, so.

SC was written (and is still primarily used) on Macs
under OSX.

 I've looked at it, and it is doable.  However, I think it would require
 some preprocessor magic, since currently, copying slots is done by
 assignment, which is definitely faster than a memcpy of a struct...

 The assignment operator ought to be fairly well optimized. Actually,
 memcpy might be, too. Remember, memcpy is a part of the C standard
 library; the compiler is perfectly free to implement it any way it
 choses --- it need not be a function call. I think GCC might actually do
 this.

Yes, thanks for the nice demonstration, so memcpy
is not really the problem, however, changing the amount of bits
used for a single slot is going to be...  QUoting the author,
going to more than 64bit would be a loss of performance, going
to less than 64bit would be a loss of precision, and using
a struct with a separate tag field would increase memory
usage by at least factor two, due to alignment...

I can very well see why he does not want to make one of
these changes just to make his code run on an arch
it already runs on (through 32bit compatibility).

So I guess the final answer is either we figure out
a preprocessor based patch which makes the necessary
adjustments for 64bit archs, and leaves the code basically
the same for 32bit archs, or we don't package SC for 64-bit archs.

-- 
CYa,
  Mario


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



How to package SuperCollider (or, whats the deal with multiarch)

2005-12-13 Thread Mario Lang
Hi.

SuperCollider is for some reason I am going to explain below a bit
strange when it comes to porting it to AMD64:

SC consists of two separate programs, the synthesis server (connects to JACK),
and the language client which executes SCLang code.  Both processes
communicate with each other via UDP (OSC).

For reasons of design and speed vs. space tradeoffs, the language
*has* to be compiled as a 32bit binary.  The 64bit build fails
at runtime due to pointer size overflows.  (if anyone wants to know
more about it, the main reason for this is that SCLang uses a kind
of slot-mechanism to hold direct and indirect values all in a 64bit
double, therefore a 64bit pointer + tag does not fit).

OTOH, the synthesis server builds in 64bit mode, and works nicely.  It
actually has to be built 64bit, since it links to JACK, which
is most probably a 64bit version on an debian amd64 box...

Now, I can build and install this stuff by hand, simply build the
server on the system as usual, and build the language client in a sid-ia32
chroot, do the ld.so.conf magic and symlink sclang.  That works
nicely.
However, I am kind of wondering how to solve this properly
when it comes to packaging supercollider?
I am not up-to-date with how multiarch is exactly ment to work
these days, would it fit this kind of application?
If so, whats the proper way to do it, and can this already be done
with the infrastructure currently in amd64 sid?

-- 
CYa,
  Mario


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: How to package SuperCollider (or, whats the deal with multiarch)

2005-12-13 Thread Mario Lang
[EMAIL PROTECTED] (Lennart Sorensen) writes:

 On Tue, Dec 13, 2005 at 01:53:04PM +0100, Mario Lang wrote:
 SuperCollider is for some reason I am going to explain below a bit
 strange when it comes to porting it to AMD64:
 
 SC consists of two separate programs, the synthesis server (connects to 
 JACK),
 and the language client which executes SCLang code.  Both processes
 communicate with each other via UDP (OSC).
 
 For reasons of design and speed vs. space tradeoffs, the language
 *has* to be compiled as a 32bit binary.  The 64bit build fails
 at runtime due to pointer size overflows.  (if anyone wants to know
 more about it, the main reason for this is that SCLang uses a kind
 of slot-mechanism to hold direct and indirect values all in a 64bit
 double, therefore a 64bit pointer + tag does not fit).

 Briliant.  I just love when programers write non portable code for the
 sake of performance. :)

Well, I've been there, felt like that, but I sort of understand
the original decision.  realtime audio synthesis is really very demanding
on the CPU, so it is very understandable why the author wanted to get
the best possible performance for his interpreter language.

 What if some future architecture has the ability to run your code
 way faster but can't run it because of the clunky code you decided
 to write.

In this specific case, that is a very hypothetical thesis...  I cant really
imagine an arch which does say 80bit or 128bit floating point math
faster than 64bit...  OTOH, I dont really know what I am talking about here,
I am not a hardware person.

 This has been done many times before and every single time it
 eventually became a big problem.

 I wonder how hard it would be to change it to using a struct of a 32 and
 a 64bit value instead.

I've looked at it, and it is doable.  However, I think it would require
some preprocessor magic, since currently, copying slots is done by
assignment, which is definitely faster than a memcpy of a struct...

But I agree, a proper patch which is acceptable by upstream would
be favourable.  Only to a purist I am afraid, the userbase seems
quite happy with the current situation.  And upstream is not going
to accept a solution which reduces performance for a 32bit address space
version.

 OTOH, the synthesis server builds in 64bit mode, and works nicely.  It
 actually has to be built 64bit, since it links to JACK, which
 is most probably a 64bit version on an debian amd64 box...
 
 Now, I can build and install this stuff by hand, simply build the
 server on the system as usual, and build the language client in a sid-ia32
 chroot, do the ld.so.conf magic and symlink sclang.  That works
 nicely.
 However, I am kind of wondering how to solve this properly
 when it comes to packaging supercollider?
 I am not up-to-date with how multiarch is exactly ment to work
 these days, would it fit this kind of application?
 If so, whats the proper way to do it, and can this already be done
 with the infrastructure currently in amd64 sid?

 Well best case, the code gets cleaned up to be 64bit clean.

 Worst case you don't package it for 64bit machines.

 Or you can perhaps make the package so that it only builds the client
 on 32bit systems, and builds the server packages on all systems.

These three cases I already worked out, I was looking for case 4 :-),
or some ambitioned porter willing to take a look at it and help...

-- 
CYa,
  Mario


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Skype?

2005-07-05 Thread Mario Lang
[EMAIL PROTECTED] (Lennart Sorensen) writes:

 On Tue, Jul 05, 2005 at 07:24:30AM -0500, John Goerzen wrote:
 I know this is a bit OT, but can somebody explain to me the allure of
 Skype when there is a huge SIP community, with soft phones, hard phones,
 and even the asterisk PBX in Linux?

 Asterisk PBX is for running real phone systems (not VoIP) over T1/E1
 (24/32 voice channels) and analog phone lines.

This is just plain wrong.  I use Asterisk at home, and all my
asterisk installation does is take incoming SIP calls, forward them
to my SIP hardware phone, and vice versa.  No real telco hardware involved.
SO saying it is *not* for VoIP is just wrong.

-- 
CYa,
  Mario


pgpmVBOG2rb3N.pgp
Description: PGP signature


Bug#274240: Drop AMD64 from arch list

2004-09-30 Thread Mario Lang
Package: supercollider
Severity: wishlist

I just tried supercollider on our company AMD64 box running
the unofficial Debian pure64 port.  The package is available, but
sclang immediately segfaults (after some basic startup msgs).

I now found this:
http://www.create.ucsb.edu/pipermail/sc-users/2004-September/012951.html

which clearly indicates that SC does *not* work on
amd64 machines in 64-bit mode, even though the compile works without
problems.

To avoid confusing amd64 users, it would probably be a good idea
to prevent building of supercollider on amd64 somehow.

(And if some guru knows an easy solution for the problem described in
 above link, its proably worth trying to patch sc for Debian-amd64.
 At least I wanted to replace my personal workstation at home with a AMD64
 box soon, but since I do use supercollider a lot, that plan
 is now no longer very good.)

-- 
Regards,
  Mario Lang

Graz University of Technology mailto:[EMAIL PROTECTED]
Department Computing   http://www.ZID.TUGraz.at/lang/
Phone: +43 (0) 316 / 873 - 6897




exim4 segfaults when delivering to a smarthost?

2004-08-12 Thread Mario Lang
Hi.

I am seeing the following error in /var/log/exim4/mainlog on our
dual Opteron 246 machine for every mail I am trying to send:

2004-08-12 14:51:49 1BvF3c-0001T5-Vd == [EMAIL PROTECTED] R=smarthost 
T=remote_smtp_smarthost defer (-1): smtp transport process returned non-zero 
status 0x000b: terminated by signal 11

dmesg reports:
exim4[5649]: segfault at 0010 rip 00457c5b rsp 
007fbfffa740 error 4

Has anyone seen this before and knows a solution perhaps?

(If it weren't for popcon, I wouldn't even have notice this :-)

-- 
CYa,
  Mario


pgp4w8hGEfhW0.pgp
Description: PGP signature