View previous topic :: View next topic |
Author |
Message |
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
Posted: Tue Jul 06, 2004 12:20 am Post subject: Mango Beta 9 |
|
|
Mango Beta 9 is available for download.
Some classes from Socket.d have been split out into seperate modules, and there's a new SocketListener class for asynchronously dispatching socket input. The latter is used by the new mango.cluster package, which provides the foundation for several network-aware clustering mechanisms. Right now it exposes very simple cache-coherency only, but this will expand over time (I wanted to get the basic foundation in place).
- Kris |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 4:53 am Post subject: |
|
|
There are a couple of errors on the linux build.
The first was pretty easy to fix. The file io/MulticastSocket.d makes a call to setOption(OptionLevel.IP, Option.IP_MULTICAST_LOOP, onoff) on line 73, Mango stops compiling here on Linux.
It appears that for version (linux) in Socket.d, IP_MULTICAST_LOOP has not yet been defined. I added the following lines to the linux version of "enum Option" to fix this:
Code: | // OptionLevel.IP settings
IP_MULTICAST_LOOP = 34,
IP_ADD_MEMBERSHIP = 35,
IP_DROP_MEMBERSHIP = 36, |
I found these values in the usr/src/linux/include/linux/in.h, so they appear to be correct.
Once the above is corrected, mango compiles.
Unfortunately the second error puzzles me. Unittest fails to compile with the error:
Code: | mango/unittest.d(262): 'w' is not an integral type
make: *** [unittest] Error 1
|
Any clues?
Later,
John |
|
Back to top |
|
|
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
Posted: Wed Jul 07, 2004 10:10 am Post subject: |
|
|
Whoops; thank you John ~ I'll get that into the zipfile right away.
Don't know about that unittest:262 error either. Very strange. What version of dmd are you using?
- Kris |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 3:12 pm Post subject: |
|
|
I'll see what I can dig up on the second error. I'm using dmd 0.94. There shouldn't be any stale files since I deleted the old directory first.
The only real difference is that I used the svn repository checkout process this time (via the CLI) instead of just downloading the zip file and extracting it. This shouldn't cause any problem though. But just to be sure, maybe I'll go ahead and try the zip file also.
Later,
John |
|
Back to top |
|
|
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
Posted: Wed Jul 07, 2004 3:23 pm Post subject: |
|
|
I screwed up on the zipfile also; Charles noted that SynchedCache.d was missing, which is now fixed. He also ran into that strange error ... |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 3:24 pm Post subject: |
|
|
The download version of beta-9 is missing the file mango/cache/SynchedCache.d.
- John |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 3:25 pm Post subject: |
|
|
Oops... looks like I'm out of sync with the posts |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 3:30 pm Post subject: |
|
|
Yep... tried the updated zip file. That "integral type" error is still there. So there's no issue of this reported in the Windows version? |
|
Back to top |
|
|
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
Posted: Wed Jul 07, 2004 3:34 pm Post subject: |
|
|
Nope; no problems noted with the Win32 compiler.
can you comment that line out, and see if it complains about the .put() on line 275? |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 3:50 pm Post subject: |
|
|
No, .put() doesn't seem to cause any issues. After commenting out the "w <<" line out, I get a "not an integral type" error again on 327 for the variable "tw".
Code: | tw << "now is the time for all good men" << 3.14159; |
Some issue is going on with that "<<" operator. I'll have a looksee. Has the operator overloading been changed recently? Or perhaps Walter didn't keep the linux and win32 versions of dmd exactly in sync. Curious.
- John |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 3:57 pm Post subject: |
|
|
I see an unusual situation in io/Writer.d:
You have a "version (Mango_UseOpShr)" designation for all shift left operators! Don't think that's correct. Should it be "version (Mango_UseOpShl) instead? I can't see where this version is activated.
Although... I'm likely just thoroughly confused.
Later,
John |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 4:06 pm Post subject: |
|
|
Ignore above post. It's looks like that version statement is used for both shift left and shift right activation. I still need to find where that version path is activated, though. |
|
Back to top |
|
|
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
Posted: Wed Jul 07, 2004 4:09 pm Post subject: |
|
|
JJR wrote: | No, .put() doesn't seem to cause any issues. After commenting out the "w <<" line out, I get a "not an integral type" error again on 327 for the variable "tw".
Code: | tw << "now is the time for all good men" << 3.14159; |
Some issue is going on with that "<<" operator. I'll have a looksee. Has the operator overloading been changed recently? Or perhaps Walter didn't keep the linux and win32 versions of dmd exactly in sync. Curious.
- John |
I suspect it's the latter John. Walter changed the behaviour of both << and >> recently (I think it was v0.93). Mango.io hasn't changed in that arena since ... oh wait! I noticed that mango.io.Writer.d didn't have a version() statement wrapping the operators. Under Win32, the version() stuff is global to the compile rather than being local to the file (most annoying actually) ~ I wonder if the linux compiler does that differently? If so, the << operators would not be defined within Writer; hence the error.
Can you please test this John, by commenting out the version statement on line 403 of Writer.d ?
Failing that: I think the only Mango code that actually uses the <</>> syntax is isolated to unittest.d, so the rest of it should compile fine. For the time being, perhaps it would be worth using mango/example/servlets.d as the executable instead ? |
|
Back to top |
|
|
kris
Joined: 27 Mar 2004 Posts: 1494 Location: South Pacific
|
Posted: Wed Jul 07, 2004 4:15 pm Post subject: |
|
|
JJR wrote: | Ignore above post. It's looks like that version statement is used for both shift left and shift right activation. I still need to find where that version path is activated, though. |
Now I'm the one out of synch
It's located in mango.io.model.IReader.d |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Jul 07, 2004 4:53 pm Post subject: |
|
|
kris wrote: | I suspect it's the latter John. Walter changed the behaviour of both << and >> recently (I think it was v0.93). Mango.io hasn't changed in that arena since ... oh wait! I noticed that mango.io.Writer.d didn't have a version() statement wrapping the operators. Under Win32, the version() stuff is global to the compile rather than being local to the file (most annoying actually) ~ I wonder if the linux compiler does that differently? If so, the << operators would not be defined within Writer; hence the error. |
You're probably right about the problem of linux version being local to the file (well to some wierd extent anyway). I took out all previous comments and added a "version = Mango_UseOpShr;" within the class in IWriter.d. The mango library and unittest compiled without error. Unfortunately, the unittest segment faults on run. So something still isn't right...argh.
kris wrote: | Can you please test this John, by commenting out the version statement on line 403 of Writer.d ? |
Did so prior to trying above... the error came up with: tw.opShl("... text ...") is not an integral type. Looks like the version branch was not being activated in IWriter.d even though it was in Writer.d (well I should say we forced it to be activated by commenting out the version statement). Kind of weird combination of effects.
kris wrote: | Failing that: I think the only Mango code that actually uses the <</>> syntax is isolated to unittest.d, so the rest of it should compile fine. For the time being, perhaps it would be worth using mango/example/servlets.d as the executable instead ? |
I'll give this a try... Still would be nice to know why unittest.d is now seg faulting with my above changes.
Later,
John |
|
Back to top |
|
|
|