Frank Schorr | 3 Jan 2010 13:51
Picon

upgrade from 0.9 to 1.0

Hi Ian:

I'm currently revising my software and thought I should also upgrade my elephant from 0.9 to 1.0 
using lispworks on win32.

Compiling was easy, apart from two problems related to base-string:

Error: BASE-STRING is not the name of a class
when compiling walk-heap in in elephant-1.0/src/elephant/gc.lisp
I commented out the method for base-string

Error while reading: Saw character U+0080 with syntax type invalid. 
when compiling  deftest base-strings in elephant-1.0/tests/testserializer.lisp
I commented out the deftest form

But calling open-store on a fresh postgres database does not work.

I removed the handler-case in (defun deserialize ... in serializer.lisp to let the debuger go down and
compiled serializer2.lisp with (debug 3) to produce the backtrace below.
There seems to be one issue with the initarg for the condition. 
But the problem is that error is called at the t clause of the big cond, and I have no idea how to track this down
any further .

What can I do to improve elephant 1.0 for Lispworks/win ?

Best regards
Frank

Error: The error 'MAKE-INSTANCE is called with keyword :TAG among the arguments
(ELEPHANT-TYPE-DESERIALIZATION-ERROR :TAG 0) which is not one of (:CONDITION ELEPHANT::TYPE-TAG).'
(Continue reading)

Ian Eslick | 3 Jan 2010 23:36
Picon
Favicon

Re: upgrade from 0.9 to 1.0

Hi Frank,

Have you tested with BDB?  I'm curious if it's a backend issue (the serialized byte-stream seems to be at
fault; it's what's causing the condition to be asserted which itself fails).  

The other sanity check is to confirming no stale fasls and appropriate settings in my-config.sexp

I can probably take a look at this in depth this coming weekend, but I'm probably too busy this week.

Thank you,
Ian

On Jan 3, 2010, at 4:51 AM, Frank Schorr wrote:

> Hi Ian:
> 
> I'm currently revising my software and thought I should also upgrade my elephant from 0.9 to 1.0 
> using lispworks on win32.
> 
> Compiling was easy, apart from two problems related to base-string:
> 
> Error: BASE-STRING is not the name of a class
> when compiling walk-heap in in elephant-1.0/src/elephant/gc.lisp
> I commented out the method for base-string
> 
> Error while reading: Saw character U+0080 with syntax type invalid. 
> when compiling  deftest base-strings in elephant-1.0/tests/testserializer.lisp
> I commented out the deftest form
> 
> But calling open-store on a fresh postgres database does not work.
(Continue reading)

Plamen . | 5 Jan 2010 16:53
Picon

Re: Problem with LWW 5.1.2, BDB-backend

Hello Ian, Elliott,

I haven't much more time over the Chrismass days, but whatI have seen
so far is :

Btw - the problem with Elephant/BDB on LWW is not really an Elephant
one - if compiling under cygwin - there is a clash between the cygwin
and bdb definition of ssize_t, they have different sizes, Bu if
commented out from the bdb db.h, then we get the strange errors
because the pointers in the function table of the ENV struct get
displaced and wrong functions get called. Under VC++ the problem with
the function addresses does not exist, but there I get other also non
Elephant-related problems. Now I'll have again some time to
investigate the issue further.

Regards
Plamen

On Tue, Dec 8, 2009 at 10:35 PM, Ian Eslick <eslick@...> wrote:
> I don't think BDB 4.7 has been tested on windows until now.  I'm surprised
> 4.5 works with the latest head - but it's probably because you aren't
> exercising some of the 4.7 features Leslie added.
> On Dec 8, 2009, at 1:14 PM, Elliott Slaughter wrote:
>
> On Tue, Dec 8, 2009 at 12:19 PM, Ian Eslick <eslick@...> wrote:
>>
>> Elliott - these DLLs work on your system w/ Lispworks?  Is everything
>> working for you?  I just want to make sure we have a baseline.
>
> I went back to my Windows XP build, which I know worked once upon a time,
(Continue reading)

Plamen . | 5 Jan 2010 16:49
Picon

Re: upgrade from 0.9 to 1.0

Hello Frank, if you get Elephant & BDB running under LWW, I would be
interested in the result - see the LispWorks/Berkley post from last
month for details.

Regards
Plamen

On Sun, Jan 3, 2010 at 11:36 PM, Ian Eslick <eslick@...> wrote:
> Hi Frank,
>
> Have you tested with BDB?  I'm curious if it's a backend issue (the serialized byte-stream seems to be at
fault; it's what's causing the condition to be asserted which itself fails).
>
> The other sanity check is to confirming no stale fasls and appropriate settings in my-config.sexp
>
> I can probably take a look at this in depth this coming weekend, but I'm probably too busy this week.
>
> Thank you,
> Ian
>
> On Jan 3, 2010, at 4:51 AM, Frank Schorr wrote:
>
>> Hi Ian:
>>
>> I'm currently revising my software and thought I should also upgrade my elephant from 0.9 to 1.0
>> using lispworks on win32.
>>
>> Compiling was easy, apart from two problems related to base-string:
>>
>> Error: BASE-STRING is not the name of a class
(Continue reading)

Frank Schorr | 6 Jan 2010 10:27
Picon

Re: upgrade from 0.9 to 1.0

Hi Ian,

thank you for your response.

I can exclude a stale fasl problem. 

This is my-config.sexp:
((:compiler . :cygwin)
 (:berkeley-db-version . "4.7")
 (:berkeley-db-include-dir . "C:/Programme/Oracle/Berkeley DB 4.7.25/include/")
 (:berkeley-db-lib-dir . "C:/Programme/Oracle/Berkeley DB 4.7.25/lib/")
 (:berkeley-db-lib . "C:/Programme/Oracle/Berkeley DB 4.7.25/bin/libdb47.dll")
 (:berkeley-db-deadlock . "C:/Programme/Oracle/Berkeley DB 4.7.25/bin/db_deadlock.exe")
 (:berkeley-db-cachesize . 20971520)
 (:berkeley-db-max-locks . 2000)
 (:berkeley-db-max-objects . 2000)
 (:berkeley-db-map-degree2 . t)
 (:berkeley-db-mvcc . nil)
 (:clsql-lib-paths . nil)
 (:prebuilt-libraries . nil))

I tried to install ele-bdb.
While memutil.dll is generated by asdf, libberkeley-db.dll is not.
I undestand that 4.7 is the current BDB version.

There is still a conflict in a definition of ssize_t with one of cygwin's include files (see
http://thread.gmane.org/gmane.lisp.elephant.devel/271 ) 
This time I deleted the definition of ssize_t from BDB's db.h and db-bdb\libberkeley-db.c is compiled with

$ gcc -L'/cygdrive/C/Programme/Oracle/Berkeley DB 4.7.25/lib/' -I'/cygdrive/C/Programme/O
(Continue reading)

Frank Schorr | 6 Jan 2010 10:36
Picon

Re: upgrade from 0.9 to 1.0

Hi Plamen,
I had BDB running in one of the earlier versions of elephant. 
You should be aware that BDB blocks under LW/win if multiple threads access the db.
That is why I am using the postmodern backend. It is simple, stable and I don't have to care about performance.
Still, I will try to get BDB up again and let you know.
Best regards,
Frank

> -----Ursprüngliche Nachricht-----
> Von: "Plamen ." <plamen.usenet@...>
> Gesendet: 05.01.10 16:56:55
> An: Elephant bugs and development <elephant-devel@...>
> Betreff: Re: [elephant-devel] upgrade from 0.9 to 1.0

> Hello Frank, if you get Elephant & BDB running under LWW, I would be
> interested in the result - see the LispWorks/Berkley post from last
> month for details.
> 
> Regards
> Plamen
> 

___________________________________________________________
Preisknaller: WEB.DE DSL Flatrate für nur 16,99 Euro/mtl.! 
http://produkte.web.de/go/02/

Red Daly | 7 Jan 2010 06:33
Picon
Gravatar

Re: Class indexes dropped after database restart?

I'm just checking in to see if anyone has been able to reproduce this
bug.  It's a pretty nasty one and my solution does not scale
well--requires a lot of time when reopening a database to construct
the indexes.

-Red

On Tue, Dec 29, 2009 at 9:51 PM, Ian Eslick <eslick@...> wrote:
> I'll give it a try with that configuration...
>
> Thanks,
> Ian
>
> On Dec 29, 2009, at 9:42 PM, Red Daly wrote:
>
>> On Tue, Dec 29, 2009 at 5:53 PM, Ian Eslick <eslick@...> wrote:
>>> Hmmm....I can't reproduce this locally with my copy of latest.
>>>
>>> Your test code passes on a fresh DB as well.  It's possible you're catching an error having to do with
opening non 1.0 databases.
>>>
>>> A few quick sanity checks:
>>> 1) Did you clean out the test repository before running?   (tests/delscript.sh)
>>> 2) Also, are you using elephant-1.0 or the defunct elephant-dev darcs repository?
>>
>>
>> I ran the test in a different, non-elephant directory with a fresh
>> darcs repository pulled from the elephant-1.0 tree.  Here's a copy of
>> the my-config.sexp:
>>
(Continue reading)

Ian Eslick | 10 Jan 2010 21:31
Picon
Favicon

Re: Class indexes dropped after database restart?

Hi Red,

I'm sorry this took so long to get to.  I had to bring up a new Linux VM to try to reproduce your test among other
things.  Unfortunately I'm unable to reproduce this locally on the latest Ubuntu Linux w/ sbcl 1.0.32, BDB
4.7, and the latest elephant-1.0 tree.

I have some theories about what it could be, but if you still get this on the exact above configuration with a
fresh image and database I'm at a bit of a loss.

Ian

On Jan 7, 2010, at 12:33 AM, Red Daly wrote:

> I'm just checking in to see if anyone has been able to reproduce this
> bug.  It's a pretty nasty one and my solution does not scale
> well--requires a lot of time when reopening a database to construct
> the indexes.
> 
> -Red
> 
> On Tue, Dec 29, 2009 at 9:51 PM, Ian Eslick <eslick@...> wrote:
>> I'll give it a try with that configuration...
>> 
>> Thanks,
>> Ian
>> 
>> On Dec 29, 2009, at 9:42 PM, Red Daly wrote:
>> 
>>> On Tue, Dec 29, 2009 at 5:53 PM, Ian Eslick <eslick@...> wrote:
>>>> Hmmm....I can't reproduce this locally with my copy of latest.
(Continue reading)

Frank Schorr | 10 Jan 2010 23:26
Picon

initialize-instance :after

(still on 0.9)

I defined an after method for initialize instance of a persistent class.
The after method is called when a new persistent object is created, as desired.

It appears that the method is also called when the persistent object is read from the store, which is not what
I want.

a) Is this possible ?
b) If yes, what mechanism can I use to do some work only when a *new* object is created ?

Thank you 
Frank Schorr

___________________________________________________________
Preisknaller: WEB.DE DSL Flatrate für nur 16,99 Euro/mtl.! 
http://produkte.web.de/go/02/

Ian Eslick | 10 Jan 2010 23:30
Picon
Favicon

Re: initialize-instance :after

We introduced recreate-instance in 1.0 which does not call your initialize-instance when existing
instances are pulled from the DB.  You are not the first to have this problem.  ;)  Under the new system, you'll
use initialize-instance which should have the expected behavior now of only acting at actual instance
creation time.

Ian

On Jan 10, 2010, at 5:26 PM, Frank Schorr wrote:

> (still on 0.9)
> 
> I defined an after method for initialize instance of a persistent class.
> The after method is called when a new persistent object is created, as desired.
> 
> It appears that the method is also called when the persistent object is read from the store, which is not
what I want.
> 
> a) Is this possible ?
> b) If yes, what mechanism can I use to do some work only when a *new* object is created ?
> 
> Thank you 
> Frank Schorr
> 
> 
> 
> 
> 
> 
> ___________________________________________________________
> Preisknaller: WEB.DE DSL Flatrate für nur 16,99 Euro/mtl.! 
(Continue reading)


Gmane