[pypy-dev] [Fwd: Re: Fan Programing Language]

Paul deGrandis paul.degrandis at gmail.com
Tue Apr 22 23:25:38 CEST 2008


Anto,

Niko had previously discovered this and we dscussed coming up with a
way to do it.  This is a good motivator to stepping up and getting it
done.  Thanks for hitting the list with this.

Paul


On 4/22/08, Antonio Cuni <anto.cuni at gmail.com> wrote:
> Hi Niko,
>  hi all,
>
>  there is an interesting thread going on on the jvm-languages mailing
>  list; among the other things, I discovered that the JVM can handle the
>  exception much faster if you override the fillInStack method to do
>  nothing instead of building the traceback.
>
>  I think that since we don't rely on jvm tracebacks for exceptions,
>  overriding such a method in all our exception classes might lead to some
>  speedup.
>
>  Note that hotspot is smart enough to optimize well the case in which you
>  raise a prebuilt exception, but in all cases in which you have to
>  dynamically construct a new exception (e.g., OperationError) it can't.
>
>  ciao,
>  Anto
>
>  -------- Original Message --------
>  Subject: [jvm-l] Re: Fan Programing Language
>  Date: Tue, 22 Apr 2008 15:05:04 -0400
>  From: John Cowan <johnwcowan at gmail.com>
>  Reply-To: jvm-languages at googlegroups.com
>  To: jvm-languages at googlegroups.com
>  References:
>  <bfb6e3b0-8e81-4e38-95ea-2ce1187558fc at u69g2000hse.googlegroups.com>
>  <200804221911.40276.jon at ffconsultancy.com> <480E31B8.5090504 at gmail.com>
>  <200804221941.11608.jon at ffconsultancy.com>
>
>
>  On Tue, Apr 22, 2008 at 2:41 PM, Jon Harrop <jon at ffconsultancy.com> wrote:
>
>  >  > 2) you are allocating a new exception every time; the optimization
>  >  > described here [1] works only if the exception is pre-allocated.
>  >  > [1] http://blogs.sun.com/jrose/entry/longjumps_considered_inexpensive
>  >
>  >  I think that is not thread safe. Specifically, when the branch conveys
>  >  information (passed as arguments using a tail call, or embedded in the
>  >  exception) then you must use a locally allocated exception, right?
>
>  Yes, you must.   However, what makes allocating an exception expensive
>  is the fillInStack method, which has to walk the JVM stack.  If you
>  override that in your exception class with a do-nothing method, then
>  locally allocating exceptions is very cheap.
>
>  --
>  GMail doesn't have rotating .sigs, but you can see mine at
>  http://www.ccil.org/~cowan/signatures
>
>  --~--~---------~--~----~------------~-------~--~----~
>  You received this message because you are subscribed to the Google
>  Groups "JVM Languages" group.
>  To post to this group, send email to jvm-languages at googlegroups.com
>  To unsubscribe from this group, send email to
>  jvm-languages-unsubscribe at googlegroups.com
>  For more options, visit this group at
>  http://groups.google.com/group/jvm-languages?hl=en
>  -~----------~----~----~----~------~----~------~--~---
>
>
>  _______________________________________________
>  pypy-dev at codespeak.net
>  http://codespeak.net/mailman/listinfo/pypy-dev
>



More information about the Pypy-dev mailing list