Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 3 participants
- 50348 messages
Re: [Pharo-users] [Voyage] #selectOne: and #selectMany: with a block as the argument
by Esteban Lorenzano
your query is almost fine:
the unique problem is with the argument for the $or expression, which should not be another dictionary but a collection:
{
'$or' -> (Array
with: 'profile.firstName' -> { '$regex' -> '^.*na.*'. '$options' -> 'i'} asDictionary
with: 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'} asDictionary)
} asDictionary.
On Jul 8, 2013, at 2:16 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com> wrote:
> Thanks! The reference thing is exactly what I needed :)
>
> However, I'm not managing very well with the $or query... how would one add a regex in there?
>
> I've tried:
>
> User selectMany:
> {
> '$or' ->
> {
> 'profile.firstName' -> { '$regex' -> '^.*na.*'. '$options' -> 'i'} asDictionary.
> 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'} asDictionary.
> } asDictionary
> } asDictionary.
>
> But it's obviously wrong... :(
>
>
> 2013/7/8 Esteban Lorenzano <estebanlm(a)gmail.com>
> Hi,
>
> something like this:
>
> {
> '$or'-> {
> { $field1 -> value1 } asDictionary. "expression 1"
> { $field2 -> value2 } asDictionary. "expression 2"
> ...
> { $fieldN -> valueN } asDictionary. "expression N"
> }
> } asDictionary
>
> cheers,
> Esteban
>
> On Jul 8, 2013, at 12:16 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com> wrote:
>
>> Sorry for being lazy, but how does one use logical operators in dictionary queries?
>>
>> I'm trying something like:
>>
>> (User selectMany: { 'profile.firstName' -> { '$regex' -> '^.*na.*'. '$options' -> 'i'} asDictionary } asDictionary).
>>
>> And I'd like to $or this with:
>>
>> 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'} asDictionary.
>>
>>
>> 2013/7/6 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>>
>> On Jul 6, 2013, at 11:16 AM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>>
>> > sure :)
>> >
>> > I will add a blog post on "voyage advanced queries" too :)
>>
>> too if you want but we could also focus on the chapter because we can be multiple people to edit it
>> while your blog you are alone.
>>
>> Stef
>>
>> >
>> > Esteban
>> >
>> > On Jul 6, 2013, at 10:52 AM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>> >
>> >> esteban could you take some time to add this information to the Voyage chapter?
>> >>
>> >> https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/
>> >>
>> >> add the information in any format and I can make it run.
>> >>
>> >> https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english
>> >>
>> >> Stef
>> >>
>> >>
>> >>
>> >> On Jul 4, 2013, at 7:49 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>> >>
>> >>> you have different constructions:
>> >>>
>> >>> { $gt: { "number_field": 42 } }
>> >>>
>> >>> and so on... always with dictionaries (bah, json structs).
>> >>>
>> >>> as a query language it kinda sucks... but well... is how it is :)
>> >>>
>> >>> On Jul 4, 2013, at 7:34 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>> >>>
>> >>>> Ok but how do I map conceptual a query to a dictionary
>> >>>>
>> >>>> Do I guess right that there is an exact match
>> >>>>
>> >>>> selectOne: { id -> 10} asDictionary
>> >>>>
>> >>>> will match id = 10
>> >>>>
>> >>>> Now we can only do exact mathc?
>> >>>>
>> >>>> name matches: 'stef*'
>> >>>>
>> >>>>
>> >>>> On Jul 4, 2013, at 6:04 PM, Esteban A. Maringolo <emaringolo(a)gmail.com> wrote:
>> >>>>
>> >>>>> Stef,
>> >>>>>
>> >>>>> You're asking the other Esteban, but having used Voyage and Mongo I
>> >>>>> think I can answer this.
>> >>>>>
>> >>>>> Mongo receives a JSON object to do all the query filtering. For a
>> >>>>> simple lookup it is has a simple structre, as the query gets more
>> >>>>> complex it gets esoteric as well (with "special" MongoDB keys in the
>> >>>>> format of "$key").
>> >>>>>
>> >>>>> Because the simplest map we have to a JSON Object is the Dictionary, I
>> >>>>> guess that's why it ends up being converted to a Dictionary, which in
>> >>>>> turn gets converted to JSON and/or BSON.
>> >>>>>
>> >>>>> Regards,
>> >>>>>
>> >>>>> Esteban A. Maringolo
>> >>>>>
>> >>>>>
>> >>>>> 2013/7/4 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>> >>>>>>
>> >>>>>> On Jul 4, 2013, at 2:58 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>> >>>>>>
>> >>>>>> Hi :)
>> >>>>>>
>> >>>>>> can you check if you have the "MongoQueries" package installed?
>> >>>>>>
>> >>>>>> cheers,
>> >>>>>> Esteban
>> >>>>>>
>> >>>>>> ps: please notice that in anycase you will not be able to execute
>> >>>>>>
>> >>>>>> [ :each | each name first = $X ]
>> >>>>>>
>> >>>>>> because the MongoQueries package just translates the block into a
>> >>>>>> mongo-query which is a dictionary (a JSON expression). But you will found
>> >>>>>> some ways to help you, some special keywords like #in: and #where: (you can
>> >>>>>> see how they work in the tests)
>> >>>>>>
>> >>>>>>
>> >>>>>> esteban
>> >>>>>> how a dictionary is used to work as a block for a query?
>> >>>>>> Can you explain because I would have thought that the first line did not
>> >>>>>> work and the second would work.
>> >>>>>>
>> >>>>>> Stef
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> On Jul 4, 2013, at 2:17 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com>
>> >>>>>> wrote:
>> >>>>>>
>> >>>>>> Hi!
>> >>>>>>
>> >>>>>> I realize probably only Esteban will be able to answer, but I prefer to
>> >>>>>> write to the list so the mail is logged and other people can benefit from
>> >>>>>> it.
>> >>>>>>
>> >>>>>> I'm trying to use blocks as arguments for #selectOne: and #selectMany:, but
>> >>>>>> it doesn't seem to work. Here's my code:
>> >>>>>>
>> >>>>>> MyClass selectOne: { #name -> 'Some name' } asDictionary.
>> >>>>>> MyClass selectOne: [ :each | each name = 'Some name' ].
>> >>>>>>
>> >>>>>>
>> >>>>>> The first one works, but the second one raises a VOMongoConnectionError.
>> >>>>>>
>> >>>>>> Also:
>> >>>>>>
>> >>>>>> MyClass selectMany: { #name -> 'Some name' } asDictionary.
>> >>>>>> MyClass selectMany: [ :each | each name = 'Some name' ].
>> >>>>>>
>> >>>>>>
>> >>>>>> The first does work, the second one doesn't, which prevents me from writing
>> >>>>>> more useful stuff like:
>> >>>>>>
>> >>>>>> MyClass selectMany: [ :each | each name first = $P ].
>> >>>>>>
>> >>>>>> Any idea why this could be failing? I've the latest stable version loaded
>> >>>>>> via:
>> >>>>>>
>> >>>>>> Gofer it
>> >>>>>> url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
>> >>>>>> package: 'ConfigurationOfVoyageMongo';
>> >>>>>> load.
>> >>>>>> (Smalltalk at: #ConfigurationOfVoyageMongo) load.
>> >>>>>>
>> >>>>>> Thanks! :)
>> >>>>>>
>> >>>>>> Bernat.
>> >>>>>>
>> >>>>>> --
>> >>>>>> Bernat Romagosa.
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>>
>>
>>
>>
>> --
>> Bernat Romagosa.
>
>
>
>
> --
> Bernat Romagosa.
July 8, 2013
Re: [Pharo-users] [Voyage] #selectOne: and #selectMany: with a block as the argument
by Esteban A. Maringolo
Esteban,
Why do you use __id: (double underscore) instead of the _id (single
underscore) key?
Regards,
Esteban A. Maringolo
2013/7/8 Esteban Lorenzano <estebanlm(a)gmail.com>:
> Hi again,
>
> sadly, there is no direct support for referenced queries yet.
>
> however, you can workaround the problem by doing:
>
>
> {
> 'referenceField.__id' -> (VORepository current keyOf: referenceObject)
> } asDictionary.
>
> or with MongoQueries:
>
> [ :each | (each at: 'referenceField.__id') = (VORepository current keyOf:
> referenceObject) ]
>
> Some internal info:
> in Voyage, all references are kept in mongo as sub-documents with this
> structure:
>
> {
> '__id': OID(1234567890).
> '#collection': 'theNameOfTheCollection'.
> }
>
> so, you always can construct queries knowing that :)
>
> Esteban
>
> On Jul 8, 2013, at 12:58 PM, Bernat Romagosa
> <tibabenfortlapalanca(a)gmail.com> wrote:
>
> Also, how does one query a referenced object?
>
> MyClass selectMany: { 'project.name' -> 'Test' } asDictionary. "<-- Works
> only if project is an embedded object, but it doesn't if it's a reference."
>
>
> 2013/7/8 Bernat Romagosa <tibabenfortlapalanca(a)gmail.com>
>>
>> Sorry for being lazy, but how does one use logical operators in dictionary
>> queries?
>>
>> I'm trying something like:
>>
>> (User selectMany: { 'profile.firstName' -> { '$regex' -> '^.*na.*'.
>> '$options' -> 'i'} asDictionary } asDictionary).
>>
>> And I'd like to $or this with:
>>
>> 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'}
>> asDictionary.
>>
>>
>> 2013/7/6 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>>>
>>>
>>> On Jul 6, 2013, at 11:16 AM, Esteban Lorenzano <estebanlm(a)gmail.com>
>>> wrote:
>>>
>>> > sure :)
>>> >
>>> > I will add a blog post on "voyage advanced queries" too :)
>>>
>>> too if you want but we could also focus on the chapter because we can be
>>> multiple people to edit it
>>> while your blog you are alone.
>>>
>>> Stef
>>>
>>> >
>>> > Esteban
>>> >
>>> > On Jul 6, 2013, at 10:52 AM, Stéphane Ducasse
>>> > <stephane.ducasse(a)inria.fr> wrote:
>>> >
>>> >> esteban could you take some time to add this information to the Voyage
>>> >> chapter?
>>> >>
>>> >> https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/
>>> >>
>>> >> add the information in any format and I can make it run.
>>> >>
>>> >>
>>> >> https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english
>>> >>
>>> >> Stef
>>> >>
>>> >>
>>> >>
>>> >> On Jul 4, 2013, at 7:49 PM, Esteban Lorenzano <estebanlm(a)gmail.com>
>>> >> wrote:
>>> >>
>>> >>> you have different constructions:
>>> >>>
>>> >>> { $gt: { "number_field": 42 } }
>>> >>>
>>> >>> and so on... always with dictionaries (bah, json structs).
>>> >>>
>>> >>> as a query language it kinda sucks... but well... is how it is :)
>>> >>>
>>> >>> On Jul 4, 2013, at 7:34 PM, Stéphane Ducasse
>>> >>> <stephane.ducasse(a)inria.fr> wrote:
>>> >>>
>>> >>>> Ok but how do I map conceptual a query to a dictionary
>>> >>>>
>>> >>>> Do I guess right that there is an exact match
>>> >>>>
>>> >>>> selectOne: { id -> 10} asDictionary
>>> >>>>
>>> >>>> will match id = 10
>>> >>>>
>>> >>>> Now we can only do exact mathc?
>>> >>>>
>>> >>>> name matches: 'stef*'
>>> >>>>
>>> >>>>
>>> >>>> On Jul 4, 2013, at 6:04 PM, Esteban A. Maringolo
>>> >>>> <emaringolo(a)gmail.com> wrote:
>>> >>>>
>>> >>>>> Stef,
>>> >>>>>
>>> >>>>> You're asking the other Esteban, but having used Voyage and Mongo I
>>> >>>>> think I can answer this.
>>> >>>>>
>>> >>>>> Mongo receives a JSON object to do all the query filtering. For a
>>> >>>>> simple lookup it is has a simple structre, as the query gets more
>>> >>>>> complex it gets esoteric as well (with "special" MongoDB keys in
>>> >>>>> the
>>> >>>>> format of "$key").
>>> >>>>>
>>> >>>>> Because the simplest map we have to a JSON Object is the
>>> >>>>> Dictionary, I
>>> >>>>> guess that's why it ends up being converted to a Dictionary, which
>>> >>>>> in
>>> >>>>> turn gets converted to JSON and/or BSON.
>>> >>>>>
>>> >>>>> Regards,
>>> >>>>>
>>> >>>>> Esteban A. Maringolo
>>> >>>>>
>>> >>>>>
>>> >>>>> 2013/7/4 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>>> >>>>>>
>>> >>>>>> On Jul 4, 2013, at 2:58 PM, Esteban Lorenzano
>>> >>>>>> <estebanlm(a)gmail.com> wrote:
>>> >>>>>>
>>> >>>>>> Hi :)
>>> >>>>>>
>>> >>>>>> can you check if you have the "MongoQueries" package installed?
>>> >>>>>>
>>> >>>>>> cheers,
>>> >>>>>> Esteban
>>> >>>>>>
>>> >>>>>> ps: please notice that in anycase you will not be able to execute
>>> >>>>>>
>>> >>>>>> [ :each | each name first = $X ]
>>> >>>>>>
>>> >>>>>> because the MongoQueries package just translates the block into a
>>> >>>>>> mongo-query which is a dictionary (a JSON expression). But you
>>> >>>>>> will found
>>> >>>>>> some ways to help you, some special keywords like #in: and #where:
>>> >>>>>> (you can
>>> >>>>>> see how they work in the tests)
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> esteban
>>> >>>>>> how a dictionary is used to work as a block for a query?
>>> >>>>>> Can you explain because I would have thought that the first line
>>> >>>>>> did not
>>> >>>>>> work and the second would work.
>>> >>>>>>
>>> >>>>>> Stef
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> On Jul 4, 2013, at 2:17 PM, Bernat Romagosa
>>> >>>>>> <tibabenfortlapalanca(a)gmail.com>
>>> >>>>>> wrote:
>>> >>>>>>
>>> >>>>>> Hi!
>>> >>>>>>
>>> >>>>>> I realize probably only Esteban will be able to answer, but I
>>> >>>>>> prefer to
>>> >>>>>> write to the list so the mail is logged and other people can
>>> >>>>>> benefit from
>>> >>>>>> it.
>>> >>>>>>
>>> >>>>>> I'm trying to use blocks as arguments for #selectOne: and
>>> >>>>>> #selectMany:, but
>>> >>>>>> it doesn't seem to work. Here's my code:
>>> >>>>>>
>>> >>>>>> MyClass selectOne: { #name -> 'Some name' } asDictionary.
>>> >>>>>> MyClass selectOne: [ :each | each name = 'Some name' ].
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> The first one works, but the second one raises a
>>> >>>>>> VOMongoConnectionError.
>>> >>>>>>
>>> >>>>>> Also:
>>> >>>>>>
>>> >>>>>> MyClass selectMany: { #name -> 'Some name' } asDictionary.
>>> >>>>>> MyClass selectMany: [ :each | each name = 'Some name' ].
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> The first does work, the second one doesn't, which prevents me
>>> >>>>>> from writing
>>> >>>>>> more useful stuff like:
>>> >>>>>>
>>> >>>>>> MyClass selectMany: [ :each | each name first = $P ].
>>> >>>>>>
>>> >>>>>> Any idea why this could be failing? I've the latest stable version
>>> >>>>>> loaded
>>> >>>>>> via:
>>> >>>>>>
>>> >>>>>> Gofer it
>>> >>>>>> url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
>>> >>>>>> package: 'ConfigurationOfVoyageMongo';
>>> >>>>>> load.
>>> >>>>>> (Smalltalk at: #ConfigurationOfVoyageMongo) load.
>>> >>>>>>
>>> >>>>>> Thanks! :)
>>> >>>>>>
>>> >>>>>> Bernat.
>>> >>>>>>
>>> >>>>>> --
>>> >>>>>> Bernat Romagosa.
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>
>>> >>>>
>>> >>>>
>>> >>>
>>> >>>
>>> >>
>>> >>
>>> >
>>> >
>>>
>>>
>>
>>
>>
>> --
>> Bernat Romagosa.
>
>
>
>
> --
> Bernat Romagosa.
>
>
July 8, 2013
Re: [Pharo-users] More than 500MB for windows
by CHRIS BAILEY
It's bound to be the same. I encountered this quite extensively when
using VSE on Win32. There were normally a couple of system DLL's that
got plonked into the middle of it's address range and just moving those
to one of the outer edges would mean the image could be started with a
much bigger address space. Some would move without issues, some would
just refuse to budge and some would appear to work until you actually
called something in the offending dll :)
The simplest quick gain I
could get was to use the Windows /3gb switch. This would give you an
extra gb of contiguous memory and mean you could run an image just shy
of 1gb. This increases to just under 2gb when you run it on a 64-bit
machine. Even though the VM itself wasn't 64-bit, you still get the
memory benefits.
________________________________
From: Mariano Martinez Peck <marianopeck(a)gmail.com>
To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
Cc: CHRIS BAILEY <cpmbailey(a)btinternet.com>
Sent: Monday, 8 July 2013, 12:46
Subject: Re: [Pharo-users] More than 500MB for windows
I remember there was a thread where Andreas explains why the windows VM would not alloc more than 500 MB. I think it's quite similar if not the same to what Chris has said. If this is the case, MAYBE, depending on which dlls/plugins you use, you may be safe and alloc more??? Don't know...
I can search the email if you want.Â
Cheers,
On Mon, Jul 8, 2013 at 8:33 AM, Usman Bhatti <usman.bhatti(a)gmail.com> wrote:
On Mon, Jul 8, 2013 at 1:26 PM, CHRIS BAILEY <cpmbailey(a)btinternet.com> wrote:
>
>This is a standard problem on Windows whenever something tries to allocate contiguous memory due to the way it fragments your exe's memory with it's own dlls. I was able to get 1.4gb with some pretty nasty hacking of an exe once by rebasing the biggest offending dlls (it wasn't Pharo but the same principles should apply). You can find them using dependency walker. Be aware it can come with side effects as some really don't want to be moved, and as such I second Sven's OS comment ;-)
>>
>
>
>Tx for the hint. I'll first try image level optimizations before descending down to OS-level.
>Â
>
>>
>>
>>
>>
>>________________________________
>> From: Usman Bhatti <usman.bhatti(a)gmail.com>
>>To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
>>Sent: Monday, 8 July 2013, 12:05
>>Subject: [Pharo-users] More than 500MB for windows
>>
>>
>>
>>[I know there were some discussions on the topic and the topic of 64-bit VM but I'm not sure where we stand today].
>>
>>I would like to know if we can allocate more than 500MB for pharo virtual machine in Windows? I am getting an "Out Of memory" msg and the following VM statistics when trying to parse a large application with Moose. Increasing the size would be the cheapest option (in terms of effort) before trying other optimizations.
>>
>>
>>tx
>>
>>
>>
>>
>>
>>
>>
>
--
Mariano
http://marianopeck.wordpress.com
July 8, 2013
Re: [Pharo-users] [Voyage] #selectOne: and #selectMany: with a block as the argument
by Bernat Romagosa
Thanks! The reference thing is exactly what I needed :)
However, I'm not managing very well with the $or query... how would one add
a regex in there?
I've tried:
User selectMany:
{
'$or' ->
{
'profile.firstName' -> { '$regex' -> '^.*na.*'. '$options' -> 'i'}
asDictionary.
'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'}
asDictionary.
} asDictionary
} asDictionary.
But it's obviously wrong... :(
2013/7/8 Esteban Lorenzano <estebanlm(a)gmail.com>
> Hi,
>
> something like this:
>
> {
> '$or'-> {
> { $field1 -> value1 } asDictionary. "expression 1"
> { $field2 -> value2 } asDictionary. "expression 2"
> ...
> { $fieldN -> valueN } asDictionary. "expression N"
> }
> } asDictionary
>
> cheers,
> Esteban
>
> On Jul 8, 2013, at 12:16 PM, Bernat Romagosa <
> tibabenfortlapalanca(a)gmail.com> wrote:
>
> Sorry for being lazy, but how does one use logical operators in dictionary
> queries?
>
> I'm trying something like:
>
> (User selectMany: { 'profile.firstName' -> { '$regex' -> '^.*na.*'.
> '$options' -> 'i'} asDictionary } asDictionary).
>
> And I'd like to *$or* this with:
>
> 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'}
> asDictionary.
>
>
> 2013/7/6 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>
>>
>> On Jul 6, 2013, at 11:16 AM, Esteban Lorenzano <estebanlm(a)gmail.com>
>> wrote:
>>
>> > sure :)
>> >
>> > I will add a blog post on "voyage advanced queries" too :)
>>
>> too if you want but we could also focus on the chapter because we can be
>> multiple people to edit it
>> while your blog you are alone.
>>
>> Stef
>>
>> >
>> > Esteban
>> >
>> > On Jul 6, 2013, at 10:52 AM, Stéphane Ducasse <
>> stephane.ducasse(a)inria.fr> wrote:
>> >
>> >> esteban could you take some time to add this information to the Voyage
>> chapter?
>> >>
>> >> https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/
>> >>
>> >> add the information in any format and I can make it run.
>> >>
>> >>
>> https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english
>> >>
>> >> Stef
>> >>
>> >>
>> >>
>> >> On Jul 4, 2013, at 7:49 PM, Esteban Lorenzano <estebanlm(a)gmail.com>
>> wrote:
>> >>
>> >>> you have different constructions:
>> >>>
>> >>> { $gt: { "number_field": 42 } }
>> >>>
>> >>> and so on... always with dictionaries (bah, json structs).
>> >>>
>> >>> as a query language it kinda sucks... but well... is how it is :)
>> >>>
>> >>> On Jul 4, 2013, at 7:34 PM, Stéphane Ducasse <
>> stephane.ducasse(a)inria.fr> wrote:
>> >>>
>> >>>> Ok but how do I map conceptual a query to a dictionary
>> >>>>
>> >>>> Do I guess right that there is an exact match
>> >>>>
>> >>>> selectOne: { id -> 10} asDictionary
>> >>>>
>> >>>> will match id = 10
>> >>>>
>> >>>> Now we can only do exact mathc?
>> >>>>
>> >>>> name matches: 'stef*'
>> >>>>
>> >>>>
>> >>>> On Jul 4, 2013, at 6:04 PM, Esteban A. Maringolo <
>> emaringolo(a)gmail.com> wrote:
>> >>>>
>> >>>>> Stef,
>> >>>>>
>> >>>>> You're asking the other Esteban, but having used Voyage and Mongo I
>> >>>>> think I can answer this.
>> >>>>>
>> >>>>> Mongo receives a JSON object to do all the query filtering. For a
>> >>>>> simple lookup it is has a simple structre, as the query gets more
>> >>>>> complex it gets esoteric as well (with "special" MongoDB keys in the
>> >>>>> format of "$key").
>> >>>>>
>> >>>>> Because the simplest map we have to a JSON Object is the
>> Dictionary, I
>> >>>>> guess that's why it ends up being converted to a Dictionary, which
>> in
>> >>>>> turn gets converted to JSON and/or BSON.
>> >>>>>
>> >>>>> Regards,
>> >>>>>
>> >>>>> Esteban A. Maringolo
>> >>>>>
>> >>>>>
>> >>>>> 2013/7/4 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
>> >>>>>>
>> >>>>>> On Jul 4, 2013, at 2:58 PM, Esteban Lorenzano <estebanlm(a)gmail.com>
>> wrote:
>> >>>>>>
>> >>>>>> Hi :)
>> >>>>>>
>> >>>>>> can you check if you have the "MongoQueries" package installed?
>> >>>>>>
>> >>>>>> cheers,
>> >>>>>> Esteban
>> >>>>>>
>> >>>>>> ps: please notice that in anycase you will not be able to execute
>> >>>>>>
>> >>>>>> [ :each | each name first = $X ]
>> >>>>>>
>> >>>>>> because the MongoQueries package just translates the block into a
>> >>>>>> mongo-query which is a dictionary (a JSON expression). But you
>> will found
>> >>>>>> some ways to help you, some special keywords like #in: and #where:
>> (you can
>> >>>>>> see how they work in the tests)
>> >>>>>>
>> >>>>>>
>> >>>>>> esteban
>> >>>>>> how a dictionary is used to work as a block for a query?
>> >>>>>> Can you explain because I would have thought that the first line
>> did not
>> >>>>>> work and the second would work.
>> >>>>>>
>> >>>>>> Stef
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> On Jul 4, 2013, at 2:17 PM, Bernat Romagosa <
>> tibabenfortlapalanca(a)gmail.com>
>> >>>>>> wrote:
>> >>>>>>
>> >>>>>> Hi!
>> >>>>>>
>> >>>>>> I realize probably only Esteban will be able to answer, but I
>> prefer to
>> >>>>>> write to the list so the mail is logged and other people can
>> benefit from
>> >>>>>> it.
>> >>>>>>
>> >>>>>> I'm trying to use blocks as arguments for #selectOne: and
>> #selectMany:, but
>> >>>>>> it doesn't seem to work. Here's my code:
>> >>>>>>
>> >>>>>> MyClass selectOne: { #name -> 'Some name' } asDictionary.
>> >>>>>> MyClass selectOne: [ :each | each name = 'Some name' ].
>> >>>>>>
>> >>>>>>
>> >>>>>> The first one works, but the second one raises a
>> VOMongoConnectionError.
>> >>>>>>
>> >>>>>> Also:
>> >>>>>>
>> >>>>>> MyClass selectMany: { #name -> 'Some name' } asDictionary.
>> >>>>>> MyClass selectMany: [ :each | each name = 'Some name' ].
>> >>>>>>
>> >>>>>>
>> >>>>>> The first does work, the second one doesn't, which prevents me
>> from writing
>> >>>>>> more useful stuff like:
>> >>>>>>
>> >>>>>> MyClass selectMany: [ :each | each name first = $P ].
>> >>>>>>
>> >>>>>> Any idea why this could be failing? I've the latest stable version
>> loaded
>> >>>>>> via:
>> >>>>>>
>> >>>>>> Gofer it
>> >>>>>> url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
>> >>>>>> package: 'ConfigurationOfVoyageMongo';
>> >>>>>> load.
>> >>>>>> (Smalltalk at: #ConfigurationOfVoyageMongo) load.
>> >>>>>>
>> >>>>>> Thanks! :)
>> >>>>>>
>> >>>>>> Bernat.
>> >>>>>>
>> >>>>>> --
>> >>>>>> Bernat Romagosa.
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>>
>>
>
>
> --
> Bernat Romagosa.
>
>
>
--
Bernat Romagosa.
July 8, 2013
Re: [Pharo-users] [Voyage] #selectOne: and #selectMany: with a block as the argument
by Esteban Lorenzano
Hi again,
sadly, there is no direct support for referenced queries yet.
however, you can workaround the problem by doing:
{
'referenceField.__id' -> (VORepository current keyOf: referenceObject)
} asDictionary.
or with MongoQueries:
[ :each | (each at: 'referenceField.__id') = (VORepository current keyOf: referenceObject) ]
Some internal info:
in Voyage, all references are kept in mongo as sub-documents with this structure:
{
'__id': OID(1234567890).
'#collection': 'theNameOfTheCollection'.
}
so, you always can construct queries knowing that :)
Esteban
On Jul 8, 2013, at 12:58 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com> wrote:
> Also, how does one query a referenced object?
>
> MyClass selectMany: { 'project.name' -> 'Test' } asDictionary. "<-- Works only if project is an embedded object, but it doesn't if it's a reference."
>
>
> 2013/7/8 Bernat Romagosa <tibabenfortlapalanca(a)gmail.com>
> Sorry for being lazy, but how does one use logical operators in dictionary queries?
>
> I'm trying something like:
>
> (User selectMany: { 'profile.firstName' -> { '$regex' -> '^.*na.*'. '$options' -> 'i'} asDictionary } asDictionary).
>
> And I'd like to $or this with:
>
> 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'} asDictionary.
>
>
> 2013/7/6 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>
> On Jul 6, 2013, at 11:16 AM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>
> > sure :)
> >
> > I will add a blog post on "voyage advanced queries" too :)
>
> too if you want but we could also focus on the chapter because we can be multiple people to edit it
> while your blog you are alone.
>
> Stef
>
> >
> > Esteban
> >
> > On Jul 6, 2013, at 10:52 AM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> >
> >> esteban could you take some time to add this information to the Voyage chapter?
> >>
> >> https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/
> >>
> >> add the information in any format and I can make it run.
> >>
> >> https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english
> >>
> >> Stef
> >>
> >>
> >>
> >> On Jul 4, 2013, at 7:49 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> >>
> >>> you have different constructions:
> >>>
> >>> { $gt: { "number_field": 42 } }
> >>>
> >>> and so on... always with dictionaries (bah, json structs).
> >>>
> >>> as a query language it kinda sucks... but well... is how it is :)
> >>>
> >>> On Jul 4, 2013, at 7:34 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> >>>
> >>>> Ok but how do I map conceptual a query to a dictionary
> >>>>
> >>>> Do I guess right that there is an exact match
> >>>>
> >>>> selectOne: { id -> 10} asDictionary
> >>>>
> >>>> will match id = 10
> >>>>
> >>>> Now we can only do exact mathc?
> >>>>
> >>>> name matches: 'stef*'
> >>>>
> >>>>
> >>>> On Jul 4, 2013, at 6:04 PM, Esteban A. Maringolo <emaringolo(a)gmail.com> wrote:
> >>>>
> >>>>> Stef,
> >>>>>
> >>>>> You're asking the other Esteban, but having used Voyage and Mongo I
> >>>>> think I can answer this.
> >>>>>
> >>>>> Mongo receives a JSON object to do all the query filtering. For a
> >>>>> simple lookup it is has a simple structre, as the query gets more
> >>>>> complex it gets esoteric as well (with "special" MongoDB keys in the
> >>>>> format of "$key").
> >>>>>
> >>>>> Because the simplest map we have to a JSON Object is the Dictionary, I
> >>>>> guess that's why it ends up being converted to a Dictionary, which in
> >>>>> turn gets converted to JSON and/or BSON.
> >>>>>
> >>>>> Regards,
> >>>>>
> >>>>> Esteban A. Maringolo
> >>>>>
> >>>>>
> >>>>> 2013/7/4 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >>>>>>
> >>>>>> On Jul 4, 2013, at 2:58 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> >>>>>>
> >>>>>> Hi :)
> >>>>>>
> >>>>>> can you check if you have the "MongoQueries" package installed?
> >>>>>>
> >>>>>> cheers,
> >>>>>> Esteban
> >>>>>>
> >>>>>> ps: please notice that in anycase you will not be able to execute
> >>>>>>
> >>>>>> [ :each | each name first = $X ]
> >>>>>>
> >>>>>> because the MongoQueries package just translates the block into a
> >>>>>> mongo-query which is a dictionary (a JSON expression). But you will found
> >>>>>> some ways to help you, some special keywords like #in: and #where: (you can
> >>>>>> see how they work in the tests)
> >>>>>>
> >>>>>>
> >>>>>> esteban
> >>>>>> how a dictionary is used to work as a block for a query?
> >>>>>> Can you explain because I would have thought that the first line did not
> >>>>>> work and the second would work.
> >>>>>>
> >>>>>> Stef
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Jul 4, 2013, at 2:17 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com>
> >>>>>> wrote:
> >>>>>>
> >>>>>> Hi!
> >>>>>>
> >>>>>> I realize probably only Esteban will be able to answer, but I prefer to
> >>>>>> write to the list so the mail is logged and other people can benefit from
> >>>>>> it.
> >>>>>>
> >>>>>> I'm trying to use blocks as arguments for #selectOne: and #selectMany:, but
> >>>>>> it doesn't seem to work. Here's my code:
> >>>>>>
> >>>>>> MyClass selectOne: { #name -> 'Some name' } asDictionary.
> >>>>>> MyClass selectOne: [ :each | each name = 'Some name' ].
> >>>>>>
> >>>>>>
> >>>>>> The first one works, but the second one raises a VOMongoConnectionError.
> >>>>>>
> >>>>>> Also:
> >>>>>>
> >>>>>> MyClass selectMany: { #name -> 'Some name' } asDictionary.
> >>>>>> MyClass selectMany: [ :each | each name = 'Some name' ].
> >>>>>>
> >>>>>>
> >>>>>> The first does work, the second one doesn't, which prevents me from writing
> >>>>>> more useful stuff like:
> >>>>>>
> >>>>>> MyClass selectMany: [ :each | each name first = $P ].
> >>>>>>
> >>>>>> Any idea why this could be failing? I've the latest stable version loaded
> >>>>>> via:
> >>>>>>
> >>>>>> Gofer it
> >>>>>> url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
> >>>>>> package: 'ConfigurationOfVoyageMongo';
> >>>>>> load.
> >>>>>> (Smalltalk at: #ConfigurationOfVoyageMongo) load.
> >>>>>>
> >>>>>> Thanks! :)
> >>>>>>
> >>>>>> Bernat.
> >>>>>>
> >>>>>> --
> >>>>>> Bernat Romagosa.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> >
>
>
>
>
>
> --
> Bernat Romagosa.
>
>
>
> --
> Bernat Romagosa.
July 8, 2013
Re: [Pharo-users] [Voyage] #selectOne: and #selectMany: with a block as the argument
by Esteban Lorenzano
Hi,
something like this:
{
'$or'-> {
{ $field1 -> value1 } asDictionary. "expression 1"
{ $field2 -> value2 } asDictionary. "expression 2"
...
{ $fieldN -> valueN } asDictionary. "expression N"
}
} asDictionary
cheers,
Esteban
On Jul 8, 2013, at 12:16 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com> wrote:
> Sorry for being lazy, but how does one use logical operators in dictionary queries?
>
> I'm trying something like:
>
> (User selectMany: { 'profile.firstName' -> { '$regex' -> '^.*na.*'. '$options' -> 'i'} asDictionary } asDictionary).
>
> And I'd like to $or this with:
>
> 'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'} asDictionary.
>
>
> 2013/7/6 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>
> On Jul 6, 2013, at 11:16 AM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>
> > sure :)
> >
> > I will add a blog post on "voyage advanced queries" too :)
>
> too if you want but we could also focus on the chapter because we can be multiple people to edit it
> while your blog you are alone.
>
> Stef
>
> >
> > Esteban
> >
> > On Jul 6, 2013, at 10:52 AM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> >
> >> esteban could you take some time to add this information to the Voyage chapter?
> >>
> >> https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/
> >>
> >> add the information in any format and I can make it run.
> >>
> >> https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english
> >>
> >> Stef
> >>
> >>
> >>
> >> On Jul 4, 2013, at 7:49 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> >>
> >>> you have different constructions:
> >>>
> >>> { $gt: { "number_field": 42 } }
> >>>
> >>> and so on... always with dictionaries (bah, json structs).
> >>>
> >>> as a query language it kinda sucks... but well... is how it is :)
> >>>
> >>> On Jul 4, 2013, at 7:34 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> >>>
> >>>> Ok but how do I map conceptual a query to a dictionary
> >>>>
> >>>> Do I guess right that there is an exact match
> >>>>
> >>>> selectOne: { id -> 10} asDictionary
> >>>>
> >>>> will match id = 10
> >>>>
> >>>> Now we can only do exact mathc?
> >>>>
> >>>> name matches: 'stef*'
> >>>>
> >>>>
> >>>> On Jul 4, 2013, at 6:04 PM, Esteban A. Maringolo <emaringolo(a)gmail.com> wrote:
> >>>>
> >>>>> Stef,
> >>>>>
> >>>>> You're asking the other Esteban, but having used Voyage and Mongo I
> >>>>> think I can answer this.
> >>>>>
> >>>>> Mongo receives a JSON object to do all the query filtering. For a
> >>>>> simple lookup it is has a simple structre, as the query gets more
> >>>>> complex it gets esoteric as well (with "special" MongoDB keys in the
> >>>>> format of "$key").
> >>>>>
> >>>>> Because the simplest map we have to a JSON Object is the Dictionary, I
> >>>>> guess that's why it ends up being converted to a Dictionary, which in
> >>>>> turn gets converted to JSON and/or BSON.
> >>>>>
> >>>>> Regards,
> >>>>>
> >>>>> Esteban A. Maringolo
> >>>>>
> >>>>>
> >>>>> 2013/7/4 Stéphane Ducasse <stephane.ducasse(a)inria.fr>:
> >>>>>>
> >>>>>> On Jul 4, 2013, at 2:58 PM, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> >>>>>>
> >>>>>> Hi :)
> >>>>>>
> >>>>>> can you check if you have the "MongoQueries" package installed?
> >>>>>>
> >>>>>> cheers,
> >>>>>> Esteban
> >>>>>>
> >>>>>> ps: please notice that in anycase you will not be able to execute
> >>>>>>
> >>>>>> [ :each | each name first = $X ]
> >>>>>>
> >>>>>> because the MongoQueries package just translates the block into a
> >>>>>> mongo-query which is a dictionary (a JSON expression). But you will found
> >>>>>> some ways to help you, some special keywords like #in: and #where: (you can
> >>>>>> see how they work in the tests)
> >>>>>>
> >>>>>>
> >>>>>> esteban
> >>>>>> how a dictionary is used to work as a block for a query?
> >>>>>> Can you explain because I would have thought that the first line did not
> >>>>>> work and the second would work.
> >>>>>>
> >>>>>> Stef
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Jul 4, 2013, at 2:17 PM, Bernat Romagosa <tibabenfortlapalanca(a)gmail.com>
> >>>>>> wrote:
> >>>>>>
> >>>>>> Hi!
> >>>>>>
> >>>>>> I realize probably only Esteban will be able to answer, but I prefer to
> >>>>>> write to the list so the mail is logged and other people can benefit from
> >>>>>> it.
> >>>>>>
> >>>>>> I'm trying to use blocks as arguments for #selectOne: and #selectMany:, but
> >>>>>> it doesn't seem to work. Here's my code:
> >>>>>>
> >>>>>> MyClass selectOne: { #name -> 'Some name' } asDictionary.
> >>>>>> MyClass selectOne: [ :each | each name = 'Some name' ].
> >>>>>>
> >>>>>>
> >>>>>> The first one works, but the second one raises a VOMongoConnectionError.
> >>>>>>
> >>>>>> Also:
> >>>>>>
> >>>>>> MyClass selectMany: { #name -> 'Some name' } asDictionary.
> >>>>>> MyClass selectMany: [ :each | each name = 'Some name' ].
> >>>>>>
> >>>>>>
> >>>>>> The first does work, the second one doesn't, which prevents me from writing
> >>>>>> more useful stuff like:
> >>>>>>
> >>>>>> MyClass selectMany: [ :each | each name first = $P ].
> >>>>>>
> >>>>>> Any idea why this could be failing? I've the latest stable version loaded
> >>>>>> via:
> >>>>>>
> >>>>>> Gofer it
> >>>>>> url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
> >>>>>> package: 'ConfigurationOfVoyageMongo';
> >>>>>> load.
> >>>>>> (Smalltalk at: #ConfigurationOfVoyageMongo) load.
> >>>>>>
> >>>>>> Thanks! :)
> >>>>>>
> >>>>>> Bernat.
> >>>>>>
> >>>>>> --
> >>>>>> Bernat Romagosa.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> >
>
>
>
>
>
> --
> Bernat Romagosa.
July 8, 2013
Re: [Pharo-users] More than 500MB for windows
by Mariano Martinez Peck
I remember there was a thread where Andreas explains why the windows VM
would not alloc more than 500 MB. I think it's quite similar if not the
same to what Chris has said. If this is the case, MAYBE, depending on which
dlls/plugins you use, you may be safe and alloc more??? Don't know...
I can search the email if you want.
Cheers,
On Mon, Jul 8, 2013 at 8:33 AM, Usman Bhatti <usman.bhatti(a)gmail.com> wrote:
> On Mon, Jul 8, 2013 at 1:26 PM, CHRIS BAILEY <cpmbailey(a)btinternet.com>wrote:
>
>> This is a standard problem on Windows whenever something tries to
>> allocate contiguous memory due to the way it fragments your exe's memory
>> with it's own dlls. I was able to get 1.4gb with some pretty nasty hacking
>> of an exe once by rebasing the biggest offending dlls (it wasn't Pharo but
>> the same principles should apply). You can find them using dependency
>> walker. Be aware it can come with side effects as some really don't want to
>> be moved, and as such I second Sven's OS comment ;-)
>>
>
> Tx for the hint. I'll first try image level optimizations before
> descending down to OS-level.
>
>
>>
>>
>> ------------------------------
>> *From:* Usman Bhatti <usman.bhatti(a)gmail.com>
>> *To:* Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
>> *Sent:* Monday, 8 July 2013, 12:05
>> *Subject:* [Pharo-users] More than 500MB for windows
>>
>> [I know there were some discussions on the topic and the topic of 64-bit
>> VM but I'm not sure where we stand today].
>> I would like to know if we can allocate more than 500MB for pharo virtual
>> machine in Windows? I am getting an "Out Of memory" msg and the following
>> VM statistics when trying to parse a large application with Moose.
>> Increasing the size would be the cheapest option (in terms of effort)
>> before trying other optimizations.
>>
>> tx
>>
>> [image: Inline image 1]
>>
>>
>>
>>
>
--
Mariano
http://marianopeck.wordpress.com
July 8, 2013
Re: [Pharo-users] More than 500MB for windows
by Usman Bhatti
On Mon, Jul 8, 2013 at 1:26 PM, CHRIS BAILEY <cpmbailey(a)btinternet.com>wrote:
> This is a standard problem on Windows whenever something tries to allocate
> contiguous memory due to the way it fragments your exe's memory with it's
> own dlls. I was able to get 1.4gb with some pretty nasty hacking of an exe
> once by rebasing the biggest offending dlls (it wasn't Pharo but the same
> principles should apply). You can find them using dependency walker. Be
> aware it can come with side effects as some really don't want to be moved,
> and as such I second Sven's OS comment ;-)
>
Tx for the hint. I'll first try image level optimizations before descending
down to OS-level.
>
>
> ------------------------------
> *From:* Usman Bhatti <usman.bhatti(a)gmail.com>
> *To:* Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
> *Sent:* Monday, 8 July 2013, 12:05
> *Subject:* [Pharo-users] More than 500MB for windows
>
> [I know there were some discussions on the topic and the topic of 64-bit
> VM but I'm not sure where we stand today].
> I would like to know if we can allocate more than 500MB for pharo virtual
> machine in Windows? I am getting an "Out Of memory" msg and the following
> VM statistics when trying to parse a large application with Moose.
> Increasing the size would be the cheapest option (in terms of effort)
> before trying other optimizations.
>
> tx
>
> [image: Inline image 1]
>
>
>
>
July 8, 2013
Re: [Pharo-users] More than 500MB for windows
by Usman Bhatti
On Mon, Jul 8, 2013 at 1:11 PM, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
> Hi Usman,
>
> On 08 Jul 2013, at 13:05, Usman Bhatti <usman.bhatti(a)gmail.com> wrote:
>
> > [I know there were some discussions on the topic and the topic of 64-bit
> VM but I'm not sure where we stand today].
> > I would like to know if we can allocate more than 500MB for pharo
> virtual machine in Windows? I am getting an "Out Of memory" msg and the
> following VM statistics when trying to parse a large application with
> Moose. Increasing the size would be the cheapest option (in terms of
> effort) before trying other optimizations.
> >
> > tx
> >
> > <Screen Shot 2013-07-08 at 12.31.38 PM.png>
>
> I know nothing about the (extra) limitations of the Windows VM.
> But on Linux you can allocate close to 1GB (see mailing list).
> On Mac you seem to be able to get pretty close to that (see Phil's
> answers).
> So switching hardware/OS is an option too ;-)
>
I would be surprised if the client agrees to it :). So that I can't (SAS
will take some time to come).
So, may be currently, we'll have to resort to some optimizations through
serialization and de-serialization, but memory limitation is going to be a
recurrent problem for us.
>
> Sven
>
>
> --
> Sven Van Caekenberghe
> Proudly supporting Pharo
> http://pharo.org
> http://association.pharo.org
> http://consortium.pharo.org
>
>
>
>
>
>
July 8, 2013
Re: [Pharo-users] More than 500MB for windows
by CHRIS BAILEY
This is a standard problem on Windows whenever something tries to allocate contiguous memory due to the way it fragments your exe's memory with it's own dlls. I was able to get 1.4gb with some pretty nasty hacking of an exe once by rebasing the biggest offending dlls (it wasn't Pharo but the same principles should apply). You can find them using dependency walker. Be aware it can come with side effects as some really don't want to be moved, and as such I second Sven's OS comment ;-)
________________________________
From: Usman Bhatti <usman.bhatti(a)gmail.com>
To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
Sent: Monday, 8 July 2013, 12:05
Subject: [Pharo-users] More than 500MB for windows
[I know there were some discussions on the topic and the topic of 64-bit VM but I'm not sure where we stand today].
I would like to know if we can allocate more than 500MB for pharo virtual machine in Windows? I am getting an "Out Of memory" msg and the following VM statistics when trying to parse a large application with Moose. Increasing the size would be the cheapest option (in terms of effort) before trying other optimizations.
tx
July 8, 2013