Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- 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
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144619 messages
Re: [Pharo-dev] NativeBoost
by Eliot Miranda
On Tue, Nov 25, 2014 at 5:06 AM, Torsten Bergmann <astares(a)gmx.de> wrote:
> Please enlighten me as well. I also do not yet understand the idea of this
> unification layer.
>
"Unification layer" is just a name. IMO Ronie is doing something much more
useful. He is architecting the marshalling layer of the FFI so that it can
- be portable
- work in both the Cog JIT and the Interpreter
This is effectively an abstract instruction set for executing low-level
machine intsructions. It can be used for FFI call-out marshalling, but it
can also be used for low-level code generation, and we are using it in
Sista. COnsequently Ronie's "Low code" as it is properly called can be an
integral component to both a high-quality FFI and a fast VM.
For me this is a useful substrate for an FFI that can be high quality. But
note that it is only one component. The other components are
- an image-level ABI compiler whose job it is to generate the correct
marshalling code for different platforms. The FFI for processors such as
IA64/x86-64 is complex, and a compiler is the only performant way to
generate correct marshalling code
- callback machinery. I have already designed and implemented this in the
context of Alien. The architecture is portable; it can function correctly
on x86-64 and ARM, not just x86.
> So far we have
> 1. FFI -> not maintained very well, no callbacks
>
This is simply false. The FFI was in active use at Qwaq where Cog was
first implemented. I have continued to maintain and enhance it,
reimplementing it so that it is a pure Smalltalk plugin with no assembler
support code, so that it is reentrant. Recently Doug McPherson has
implemented the ARM version alongside my original x86 version.
> 2. Alien -> should provide the callbacks, hard to find a predefined
> package/VM combination
>
Every Cog VM supports Alien callbacks. The Alien package Alien-eem.24 at
http://www.squeaksource.com/Alien "jsut works", at least in Squeak. Try it.
> 3. NativeBoost was supposed to be the better one, was based on AsmJit and
> replace 1. and 2.
>
I disagree. NativeBoost has not been designed with portability in mind,
nor has it been designed with interpretive VMs in mind. Further Igor made
no attempt to work with me in providing the support he needs from Cog to
integrate NativeBoost when I visited Rmod early this year.
According to my knowledge it was the goal to continue with NB, integrate it
> (which is done)
> and move it forward as the single solution for external calls and
> callbacks.
>
> So why do we need another layer (and mixed approach with still old FFI)
> instead of working
> on bringing NB to the other platforms as well and work on a good
> NativeBoost. Wasn't there
> already work for AsmJit for ARM?
>
We have a functional FFI at the moment, FFI + Alien for callbacks. This is
in industrial use, both at Terf (nee Qwaq) and Cadence. We have
NativeBoost that does not work on ARM. We have Ronie's work on low code
that fits both with a well-architected FFI and with Sista.
I am frustrated that there is no coherence in our work here. I have a
clear understanding of what architecture can work, a clear vision, and yet
other than Ronie, all I see is FUD ("Alien doesn't work", "FFI doesn't
work", "Alien callbacks don't work"; all false). I wish this wasn't the
case. I do not have time right now to work on all of Spur, Spur 64, Sista
and find time to architect the FFI. But I know how this stuff works (I've
implemented what works now) and as the leads VM architect isn't it right
that the community try and work with me rather than without me?
> Thx
> T.
>
> > Gesendet: Dienstag, 25. November 2014 um 10:01 Uhr
> > Von: "Markus Fritsche" <mfritsche(a)reauktion.de>
> > An: "Pharo Development List" <pharo-dev(a)lists.pharo.org>
> > Betreff: Re: [Pharo-dev] NativeBoost
> >
> > On 2014-11-24 23:34, Esteban Lorenzano wrote:
> >
> > > now, since the most common use of NB is for FFI, and NB is not present
> > > in all platforms, we are working (Ronie, in this case) in a âunified
> > > FFIâ, which will provide a common abstraction layer for several FFI
> > > frameworks (NB, OldFFI, Alienâ¦). With that, we can choose which one
> > > of the frameworks we use depending on the situation (but ideally, we
> > > will maintain just one, the one that fits better in Pharo).
> >
> > I feel that providing a common abstraction layer on top of the various
> > approaches to interface to C/ C++ libraries won't be useful and should
> > be considered a waste of resources. From what I understood from the
> > documentation, NativeBoost seems to be the most complete interface
> > technology yet. I would rather (as in: If I was capable) try to get
> > NativeBoost into Squeak and add the functionality missing that still
> > justifies the existence of FFI and Alien than creating an abstraction
> > layer that can't cope with the differences in the tools (which was the
> > reason for their first creation despite the available ones).
> >
> > I tried to play around with FFI and creating plugins in Squeak and
> > failed (I didn't try very hard though). NativeBoost was the first thing
> > I was able to wrap a DLL myself and understand how to do it. The only
> > thing that I wasn't able to wrap my mind around was finalization, but
> > that is also due to the fact that I couldn't find understandable (read:
> > understandable to me) documentation about the underlying concept in
> > Pharo.
> >
> > (OT: Finalization and concurrency probably is more about the concept
> > rather than the implementation in Pharo?)
> >
> > This is a piece of opinion. We all know, that unfortunately, one doesn't
> > have to have knowledge to have an opinion, so if my opinion is wrong due
> > to lack of knowledge, please ignore it.
> >
> > Best regards,
> > Markus
> >
> >
> >
>
>
--
best,
Eliot
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by kilon alios
*"I also speak about user experience. Updating a large app takes more time
than updating a small one. A shorter period of installation means more
conversions."*
the average connection speed for wifi adsl is like 1 mb/s even for a 30
mb/s its like 30 seconds and maybe another 30 to install. Is that so bad ?
Even on slow mobile phone connection should not be more than few minutes.
*"So deploying an app to manage 1000 pictures is the same as deploying THE
SAME APP to manage Instagram?*
*Sorry, but I don't get this. Usually your app server and your app data
don't even share the same host computer, considering it is only one and it
is not sharded/clustered."*
Again as a user how am I suppose to know the diffirence ? All I care is how
much space this app needs to run. In case of pharo I have not even bothered
to analyse how much every single thing takes space. As a user how I benefit
from knowing that the executable is 10 mbs when the app needs 1 GB to run
smoothly ? Is it unreasonable that I care about the size of the whole
package and even its future size under normal usage than size of individual
parts ?
*"It runs on Android. Even though it doesn't have a native Android look,
nor it complies to most of the Android Development Guidelines.*
*But I agree that 30 MBs is not something to worry about. I simply raised
my longwinded opinion that I don't consider 30MB to be small on a mobile
device."*
it does ? now you have my full attention. I know that there was a build but
I heard it had issues and was not working. I saw recently work on improving
the multitouch and on screen keyboard but again I have seen no build . Does
multitouch work properly ? Squeak has problem with multitouch.
If pharo is usable on Android I want it in my Nexus NOW! How I do that ?
Is there a simple way to install it ? I would love to try it. I would
prefer not to have to build it myself. I really dont care about the native
look and how much it complies, the fact that I will be able to run my pharo
apps on my nexus and my galaxy note tablet would be awesome.
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by Richard Sargent
EstebanLM wrote
>> On 24 Nov 2014, at 23:48,
> phil@
> wrote:
>>
>> On mobile, large apps are not staying installed for long as they are all
>> competing for the always too small space.
>>
>> If say Twitter will do with is huge size, other apps will be compared to
>> it. Which means that a 30 mégas app us a monster asking for removal.
>>
> the average size of any app in iPhone is around 25m (or it was in 2012,
> nowadays should be more), so I hardly believe that :)
>
> I have a "flashlight" app installed. It has one feature: to turn on the
> light. It's total storage on my S3 is 26.3 MB. ... for a freaking
> flashlight!
>
> Amazon app: 67 MB
> Costco: 26 MB
> Facebook: 208 MB!!
> Google Play Books (with few books): 32 MB
> Google Search: 81 MB
>
> I agree there is value in a small footprint, but not that much. As others
> have said: Moore's law.
>
>
> Esteban
>
>> I rooted my phone to be able to remove vendor apps in order to get some
>> more space.
>>
>> Phil
>>
>> Le 24 nov. 2014 22:31, "kilon alios" <
> kilon.alios@
> <mailto:
> kilon.alios@
> >> a écrit :
>> I have an OS (Yosemite) thats takes 5 out my 8 GB of Ram. Google Chrome
>> with opened 20 tabs that consumes around 1 GB of Ram. Games that eat Ram
>> like peanuts and I do 3d graphics with blender which also can consume GBs
>> like no tommorow. Music productions was not much diffirent either. I
>> watch movies which are several GBs each. I have 1 TB drive its already
>> half full (mainly because of movies).
>>
>> 32 mb is nothing. XCode with an empty project cosumes 130 MB. Dont forget
>> that it loads no libraries like Pharo and definetly is no live coding
>> enviroment.
>>
>> Pharo consumes around 80MBs
>>
>> Emacs with zero guis still consumes 40mbs.
>>
>> Small is not beautiful its irrelevant.
>>
>> Unless you are on a platform that has real problem with sizes.
>>
>> On Mon, Nov 24, 2014 at 10:29 PM, Hilaire <
> hilaire@
> <mailto:
> hilaire@
> >> wrote:
>> Pharo 1.4 image = 15MB
>> Pharo 3 image = 22MB
>> Pharo4 image = 32MB
>>
>> Don't know about Pharo 2.0 as, skip it.
>>
>> Is there a limit?
>>
>> Hopefully I gave up on the idea of tablet use but aren't we loosing the
>> sight on small is beautiful?
>>
>> Hilaire
>>
>> --
>> Dr. Geo - http://drgeo.eu <http://drgeo.eu/>
>> iStoa - http://istoa.drgeo.eu <http://istoa.drgeo.eu/>
>>
>>
>>
--
View this message in context: http://forum.world.st/What-is-the-limit-tp4792049p4792243.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by Esteban A. Maringolo
El Tue Nov 25 2014 at 2:06:36 PM, kilon alios <kilon.alios(a)gmail.com>
escribió:
>
> >> The comparison you're doing is wrong, you're comparing apples to
> oranges.
>
> If humans had not the capacity to compare apple and oranges and find the
> differences we would never have came down the trees.
>
It wasn't humans what came down the trees. But I got it ;-)
> I don't mind being wrong, thats life.
>
> its huge for you, I have no problem with that , I wish you success to your
> ever going saga of reducing size. I have no clue how tiny sizes will
> benefit you as developer and your users. I would love to read your
> reasoning.
>
> I am talking about the user experience , I am an adroind user I am not an
> android developer nor do I care to enter the suffering zone of android and
> web development , I had enough nightmares with C++. Out of curiosity I
> check app reviews because I like to know that the app I am about to install
> is not crap . I never , ever, ever , recall anyone complain about an app
> being 60Mbs and saying "fuck this bloated shit I am unistalling it right
> now" . 99.9% the complains are that the app was not even able to run and
> usually is because of the know android incompatibilities , or the phone /
> tablet is crap , or just the occasional bug.
>
I also speak about user experience. Updating a large app takes more time
than updating a small one. A shorter period of installation means more
conversions.
> For me I would define as huge an app that takes around 80% of disk space
> thats around 6GB since my nexus is 8GB in size. I am sorry bur I cant
> justify calling something huge based on my simple skill on reasoning
> something that takes 0.25 % of my storage . Its not even a 1%.
>
> As a developer if Pharo was 1GB large but could make android development a
> piece of cake I would not hesitate to install it, assuming my phone would
> be able to run it smoothly . I am serious.
>
The last assumption you make is the key here. Not all phones are Galaxy S5
or iPhone 5, and it will get worse as the upcoming wave of "Internet of
things" devices will require software to run of it.
But with a similar reasoning one could argue that it doesn't make sense to
optimize communication protocols because links are getting faster everyday.
Somehow it holds true, but if you start big, it's really hard to trim it
down.
I also dont care how one counts the size of an app, for me anything that is
> associated with the app is part of the app, that includes all the data.
>
So deploying an app to manage 1000 pictures is the same as deploying THE
SAME APP to manage Instagram?
Sorry, but I don't get this. Usually your app server and your app data
don't even share the same host computer, considering it is only one and it
is not sharded/clustered.
I ran Smalltalk applications with <20 MB of executable file / assets, and
databases going from 10MB to lots of GB. And it was the same application.
When I updated it I just had to update the exec files (the image mostly),
the database was unchanged. So it was a 10MB update as much.
>
>
Ironically we sit here and talk about the size of pharo would take on
> android but Pharo cannot even run on android. I dont know I just feel Pharo
> has much bigger things to worry about out than 30+ MBs.
>
It runs on Android. Even though it doesn't have a native Android look, nor
it complies to most of the Android Development Guidelines.
But I agree that 30 MBs is not something to worry about. I simply raised my
longwinded opinion that I don't consider 30MB to be small on a mobile
device.
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by Esteban Lorenzano
> On 25 Nov 2014, at 18:51, Esteban A. Maringolo <emaringolo(a)gmail.com> wrote:
>
>
> El Tue Nov 25 2014 at 1:22:50 PM, Esteban Lorenzano <estebanlm(a)gmail.com <mailto:estebanlm@gmail.com>> escribió:
> I think is you who is confusing apple and oranges.
> at first time, a check of my iphone shows that more than half of the apps I use are bigger than 30m (and 30% of them are regularly 50m and more⦠I even have apps 500+)⦠and those applications are the ones that I use the most.
> no games there. They are: fb, mail, whatsapp, keynote, etc. (ah, no⦠there is a sudoku there.. 60m :P)
>
>
> Again... FB, MAIL, WhatsApp, KeyNote. Those are super mainstream applications. Tell me about a "regular" native app. I'm not fluent with iOS to compare.
puff⦠skype, g drive (75m in my case), g+, youtube, one app from here which is called voyages-scnf, a pedometer, g maps, foursquare, a chess, one called transpole (also from transport, here) and even vorterix radio⦠all 20m+
but also you are assuming people accept the size of the main stream apps because they are main stream, when the reality is what Kilon says: no body cares, no body ever look at it.
in fact, the only thing I look at is how much my battery drains if Iâm using the app⦠that is far more important than app size.
>
> Duolingo, TED, Flipboard, and even Google's Play Store all take ~15 MB each.
>
> I build Android apps, packed with lots of third party libraries and they are around ~2-3MB including some static assets. They're small and gzipped, for sure, but I don't find a better way to trim the image to be closer to that other than zipping it.
that doesnât mean your app will take 2-3m when used⦠it will be more. Also pharo packed is a lot less than regular size :)
>
> Now, for distributing your application your image will be not equal to your development image. You will strip things and reduce some others (there is a shrink process that Pavel does in the Pharo-minimal image and time ago I made some experiments and I ended with an usable 8m image running in iPhone⦠I even got a 4m image but no morphic was present so it was using ObjectiveCBridge to show some screens with functionalityâ¦)
>
> Modularity is the key, and we'll not have it, so I'm fine with what you guys do.
> I'd love to download a no morphic image and load my configurations on top of it, but it really won't make much difference in my current usage scenarios.
we will be there. soon.
>
> Also, for production you will be removing sources and changes, so you do not have to take those into account (even taking it, they are never loaded into image, they are accessed when needed).
>
> Unless you want to apply (compile/file-in) changes on the running image, on that case you'll need a changes file. (please tell me I've been wrong all this time).
you will not do that in a mobile app, I hope⦠but also, you do not need them⦠in the worst case it will be created when you do the file in.
(btw⦠Pharo3 does not have decompiler, something that you need. Pharo4 has it)
>
> So⦠I think a mobile final app of 20m - 50m (and take into account that a 50m app will be really big, DrGeo2 was 35m) is perfectly reasonable. Is not huge and most applications nowadays (even the stupid ones) occupies way more.
>
> On the server, the size doesn't matter to much to me, on mobile I still consider those weights to be excessive. Particularly if it is about code and not static assets.
⦠and I think you are wrong :)
>
> Add music, images and video and that size will be nothing.
>
>
> Now, that 5% idle is much-much more worrying that app size. And we already have an even VM who does not consumes that (JB did it) It will be integrated soon (JB needs to finish I donât know exactly what).
>
> This is certainly more important and affects me more than transfering 50 extra megs to the servers on each release. So please ignore all I said before and focus on this. :) I look forward to see this available!
yeah, we are working for you :)
Esteban
>
> Regards!
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by Esteban A. Maringolo
El Tue Nov 25 2014 at 1:22:50 PM, Esteban Lorenzano <estebanlm(a)gmail.com>
escribió:
> I think is you who is confusing apple and oranges.
> at first time, a check of my iphone shows that more than half of the apps
> I use are bigger than 30m (and 30% of them are regularly 50m and more⦠I
> even have apps 500+)⦠and those applications are the ones that I use the
> most.
> no games there. They are: fb, mail, whatsapp, keynote, etc. (ah, no⦠there
> is a sudoku there.. 60m :P)
>
>
Again... FB, MAIL, WhatsApp, KeyNote. Those are super mainstream
applications. Tell me about a "regular" native app. I'm not fluent with iOS
to compare.
Duolingo, TED, Flipboard, and even Google's Play Store all take ~15 MB each.
I build Android apps, packed with lots of third party libraries and they
are around ~2-3MB including some static assets. They're small and gzipped,
for sure, but I don't find a better way to trim the image to be closer to
that other than zipping it.
> Now, for distributing your application your image will be not equal to
> your development image. You will strip things and reduce some others (there
> is a shrink process that Pavel does in the Pharo-minimal image and time ago
> I made some experiments and I ended with an usable 8m image running in
> iPhone⦠I even got a 4m image but no morphic was present so it was using
> ObjectiveCBridge to show some screens with functionalityâ¦)
>
Modularity is the key, and we'll not have it, so I'm fine with what you
guys do.
I'd love to download a no morphic image and load my configurations on top
of it, but it really won't make much difference in my current usage
scenarios.
> Also, for production you will be removing sources and changes, so you do
> not have to take those into account (even taking it, they are never loaded
> into image, they are accessed when needed).
>
Unless you want to apply (compile/file-in) changes on the running image, on
that case you'll need a changes file. (please tell me I've been wrong all
this time).
> So⦠I think a mobile final app of 20m - 50m (and take into account that a
> 50m app will be really big, DrGeo2 was 35m) is perfectly reasonable. Is not
> huge and most applications nowadays (even the stupid ones) occupies way
> more.
>
On the server, the size doesn't matter to much to me, on mobile I still
consider those weights to be excessive. Particularly if it is about code
and not static assets.
Add music, images and video and that size will be nothing.
Now, that 5% idle is much-much more worrying that app size. And we already
> have an even VM who does not consumes that (JB did it) It will be
> integrated soon (JB needs to finish I donât know exactly what).
>
This is certainly more important and affects me more than transfering 50
extra megs to the servers on each release. So please ignore all I said
before and focus on this. :) I look forward to see this available!
Regards!
Nov. 25, 2014
Float class comment
by Eliot Miranda
Hi All,
who wrote the Float class comment? Two things,
- first the comment mentions "I" and thanks several people, but there is no
comment stamp to reveal the author. It would be lovely if the author could
"sign" this comment
- second, there seems to be a minor error (but I'm no expert), the comment
states
"It may help you to know that the basic format is...
sign 1 bit
exponent 11 bits with bias of 1023 (16r3FF) to produce an exponent
in the range -1023 .. +1024
- 16r000:
significand = 0: Float zero
significand ~= 0: Denormalized number (exp = -1024, no hidden '1' bit)
- 16r7FF:
significand = 0: Infinity
significand ~= 0: Not A Number (NaN) representation
mantissa 53 bits, but only 52 are stored (20 in the first word, 32 in the
second). This is because a normalized mantissa, by definition, has a 1 to
the right of its floating point, and IEEE-754 omits this redundant bit to
gain an extra bit of precision instead. People talk about the mantissa
without its leading one as the FRACTION, and with its leading 1 as the
SIGNFICAND."
But if the significand has a leading zero then surely the section in the
middle should read
sign 1 bit
exponent 11 bits with bias of 1023 (16r3FF) to produce an exponent
in the range -1023 .. +1024
- 16r000:
mantissa = 0: Float zero
mantissa ~= 0: Denormalized number (exp = -1024, no hidden '1' bit)
- 16r7FF:
mantissa = 0: Infinity
mantissa ~= 0: Not A Number (NaN) representation
Right?
--
best,
Eliot
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by phil@highoctane.be
Pharo runs on Android.
Phil
On Tue, Nov 25, 2014 at 6:06 PM, kilon alios <kilon.alios(a)gmail.com> wrote:
>
> >> The comparison you're doing is wrong, you're comparing apples to
> oranges.
>
> If humans had not the capacity to compare apple and oranges and find the
> differences we would never have came down the trees. I don't mind being
> wrong, thats life.
>
> >> 20+ Megs for mobile is HUGE, the only reason to use and download such
> apps is if they are (or are perceived) as "indispensable", like social
> network, mail or browsing. Games fall into a different category, the
> average >> size for such apps take more space (but are also the first ones
> to be removed when available storage starts to reach its limit).
>
> its huge for you, I have no problem with that , I wish you success to your
> ever going saga of reducing size. I have no clue how tiny sizes will
> benefit you as developer and your users. I would love to read your
> reasoning.
>
> I am talking about the user experience , I am an adroind user I am not an
> android developer nor do I care to enter the suffering zone of android and
> web development , I had enough nightmares with C++. Out of curiosity I
> check app reviews because I like to know that the app I am about to install
> is not crap . I never , ever, ever , recall anyone complain about an app
> being 60Mbs and saying "fuck this bloated shit I am unistalling it right
> now" . 99.9% the complains are that the app was not even able to run and
> usually is because of the know android incompatibilities , or the phone /
> tablet is crap , or just the occasional bug.
>
> For me I would define as huge an app that takes around 80% of disk space
> thats around 6GB since my nexus is 8GB in size. I am sorry bur I cant
> justify calling something huge based on my simple skill on reasoning
> something that takes 0.25 % of my storage . Its not even a 1%.
>
> As a developer if Pharo was 1GB large but could make android development a
> piece of cake I would not hesitate to install it, assuming my phone would
> be able to run it smoothly . I am serious.
>
> I also dont care how one counts the size of an app, for me anything that
> is associated with the app is part of the app, that includes all the data.
>
> I am coding for fun 25 years, I was around when kbs meants what gbs mean
> nowdays and its a blessing that nowdays I dont even care how large an
> android app really is. If it was not for this thread I would not even
> bothered to check the free space in my phone. In old days running out of
> space was one of the most annoying things. Having to change diskettes to
> load a lousy games and waiting and waiting and waiting. Here we are now and
> we are debating 30MBs and 20MBs ..... I feel so lucky.
>
> Which makes me wonder not how many people out there really care about app
> sizes but really how many of them even bother to check their free space.
>
> "Now⦠size occupied is not the same as size in memory. This is the size
> occupied by all app (binaries + data) and I donât really know of how much
> that would be for real (I know facebook eats a lot)⦠Pharo, in the other
> side, is not using regularly (in iPhone) more than 32m when executing.
> Thatâs because you are not loading all image in memory, you paginate the
> loading (and Marianoâs phd demonstrated that you usually does not use more
> than 20% of what is inside your image, so most frequently you do not load
> it completely at all)."
>
> hmm thats very interesting Esteban I assumed that Pharo loaded everything
> because its a live enviroment , really impressed at the optimizations you
> guys do.
>
> Ironically we sit here and talk about the size of pharo would take on
> android but Pharo cannot even run on android. I dont know I just feel Pharo
> has much bigger things to worry about out than 30+ MBs.
>
> But hey we are a community I dont expect every single one of us to have
> the same demands and needs.
>
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by Esteban Lorenzano
> On 25 Nov 2014, at 17:44, Hilaire <hilaire(a)drgeo.eu> wrote:
>
> Le 25/11/2014 17:22, Esteban Lorenzano a écrit :
>> For DrGeo2 I needed to expand that memory to 64m, but it was still in
>> the reasonable numbers.
>>
>
> How come so much? Image of latest built is below 10MB.
Iâm talking by memory here, but I remember with âmax memoryâ set to 32m I was having low memory warnings and I doubled it (no heuristics, it just looked âfineâ to jump from 32 to 64 :P) and solved the problem.
The problem could be happening in development images (before compaction)⦠but as I said, this was two years ago so I might be wrong. :P
One thing to take into account is that memory management for pharo is/was not optimal, and VM could be asking for more memory than needed in certain circumstances.
Other thing is that memory needed != memory of image. Of course, at the beginning it is, but you start creating/destroying objects right after, so your needs change.
And well, there are tons other possible reasons, but in the case of DrGeo, I *think* (I donât remember well) it was when rendering images (the predefined images: the screenshots when browsing examples, etc.).
Esteban
>
> Hilaire
>
> --
> Dr. Geo - http://drgeo.eu
> iStoa - http://istoa.drgeo.eu
>
>
Nov. 25, 2014
Re: [Pharo-dev] What is the limit
by Esteban Lorenzano
> On 25 Nov 2014, at 17:43, Clément Bera <bera.clement(a)gmail.com> wrote:
>
>
>
> 2014-11-25 17:24 GMT+01:00 Esteban Lorenzano <estebanlm(a)gmail.com <mailto:estebanlm@gmail.com>>:
> and btw⦠spur format will consume more memory.
>
> Why ?
>
> If I remember correctly the first Squeak image generated was 3% smaller. How bigger is the spur Pharo image compared to the regular image ?
Iâm having 15% bigger images.
I always assumed it was going to be like that because of the differences on header sizes⦠but I suppose the amount of ancient compact-non compact classes has something to do.
Esteban
>
> but yet, memory management will be a lot more efficient so⦠:P
>
> Esteban
>
>> On 25 Nov 2014, at 17:22, Esteban Lorenzano <estebanlm(a)gmail.com <mailto:estebanlm@gmail.com>> wrote:
>>
>> I think is you who is confusing apple and oranges.
>> at first time, a check of my iphone shows that more than half of the apps I use are bigger than 30m (and 30% of them are regularly 50m and more⦠I even have apps 500+)⦠and those applications are the ones that I use the most.
>> no games there. They are: fb, mail, whatsapp, keynote, etc. (ah, no⦠there is a sudoku there.. 60m :P)
>>
>> Now⦠size occupied is not the same as size in memory. This is the size occupied by all app (binaries + data) and I donât really know of how much that would be for real (I know facebook eats a lot)⦠Pharo, in the other side, is not using regularly (in iPhone) more than 32m when executing. Thatâs because you are not loading all image in memory, you paginate the loading (and Marianoâs phd demonstrated that you usually does not use more than 20% of what is inside your image, so most frequently you do not load it completely at all).
>>
>> For DrGeo2 I needed to expand that memory to 64m, but it was still in the reasonable numbers.
>>
>> Now, for distributing your application your image will be not equal to your development image. You will strip things and reduce some others (there is a shrink process that Pavel does in the Pharo-minimal image and time ago I made some experiments and I ended with an usable 8m image running in iPhone⦠I even got a 4m image but no morphic was present so it was using ObjectiveCBridge to show some screens with functionalityâ¦)
>> Also, for production you will be removing sources and changes, so you do not have to take those into account (even taking it, they are never loaded into image, they are accessed when needed).
>>
>> So⦠I think a mobile final app of 20m - 50m (and take into account that a 50m app will be really big, DrGeo2 was 35m) is perfectly reasonable. Is not huge and most applications nowadays (even the stupid ones) occupies way more.
>>
>> Now, that 5% idle is much-much more worrying that app size. And we already have an even VM who does not consumes that (JB did it) It will be integrated soon (JB needs to finish I donât know exactly what).
>>
>> Esteban
>>
>>
>>> On 25 Nov 2014, at 16:58, Esteban A. Maringolo <emaringolo(a)gmail.com <mailto:emaringolo@gmail.com>> wrote:
>>>
>>> Kilon,
>>>
>>> The comparison you're doing is wrong, you're comparing apples to oranges.
>>>
>>> To start with, I have Android KitKat where a clean Facebook app takes 33MB (as per the latest release), Chrome 65MB, etc. You might be counting app data as total size, but the data+cache part is variable and subject to each device.
>>>
>>> 20+ Megs for mobile is HUGE, the only reason to use and download such apps is if they are (or are perceived) as "indispensable", like social network, mail or browsing. Games fall into a different category, the average size for such apps take more space (but are also the first ones to be removed when available storage starts to reach its limit).
>>>
>>> On the other hand you should compare Pharo apps/with other development languages/IDEs/toolkits. Leaving aside GUI-less/file based tools (which are smaller) Pharo shines during the development stage taking an order of magnitude less than many of the IDEs out there.
>>> But the produced artifacts, being indistinguishable from the development image itself, takes the same size.
>>>
>>> Because it is "self contained" it uses only a few shared libraries or even complete frameworks like JRE/.net. Pros and Cons of this approach. The resource requirements of Pharo (and most Smalltalks) is linear as you add more images, you can't leverage "common" code between them.
>>>
>>> My servers are "simple web apps" that take ~40MB of image + 100+ MB of changes. All built from a clean Pharo image, with all caches flushed. For me that is A LOT. Not to mention the constant 5% CPU idling.
>>>
>>> I can live with that because the benefits I get outweighs the cons mentioned before, but saying that 40MB is not big for a program is not true, and it's plainly false on mobile.
>>>
>>> And in my opinion, and take this as 100% personal taste/experience, but being reckless about size/cpu requirements of the software you build leads to bloatware.
>>>
>>> Regards!
>>>
>>> El Tue Nov 25 2014 at 5:07:26 AM, kilon alios <kilon.alios(a)gmail.com <mailto:kilon.alios@gmail.com>> escribió:
>>> Ok here are the apps I use that loads of people also have in their phones that are more than 30 MBs
>>>
>>> 1) PDF Reader - 237MB
>>> 2) Facebook - 178 MB
>>> 3) Chrome - 148 MB
>>> 4) Respawnables (Game) 133 MB
>>> 5) Yahoo Mail - 126 MB
>>> 6) Firefox - 98 MB
>>> 7) Candy Crash Saga - 65 MB
>>> 8) G+ - 56 MB
>>> 9) Pet Rescue Saga - 53 MB
>>> 10) Google Search - 50MB
>>> 11) GMAIL - 43MB
>>> 12) Facebook Messenger - 35 MB
>>> 13) Google Maps - 32 MB
>>> 14) Twitter - 30 MB
>>>
>>> Also a +1.000.000 to Marcus about the fact that in a few years 4 GB Ram will be the standard for mobile platforms.
>>>
>>> Squeak is around 8Mbs but then I dont use it because it has all sort of issues on android.
>>>
>>
>
>
Nov. 25, 2014