Antonio Cunei | 6 Jan 16:35 2010
Picon
Picon

Call for Papers Reminder: The First Scala Workshop - Scala Days 2010


The First Scala Workshop
========================

Call for Papers
---------------

Scala is a general purpose programming language designed to express
common programming patterns in a concise, elegant, and type-safe
way. It smoothly integrates features of object-oriented and
functional languages.

This workshop is a forum for researchers and practitioners to share
new ideas and results of interest to the Scala community. The first
workshop will be held at EPFL in Lausanne, Switzerland, on Thursday
15 April 2010, co-located with Scala Days 2010 (15-16 April).

We seek papers on topics related to Scala, including (but not
limited to):

1. Language design and implementation -- language extensions,
optimization, and performance evaluation.

2. Library design and implementation patterns for extending Scala --
embedded domain-specific languages, combining language features,
generic and meta-programming.

3.Formal techniques for Scala-like programs -- formalizations of the
language, type system, and semantics, formalizing proposed language
extensions and variants, dependent object types, type and effect
(Continue reading)

David Bernard | 12 Jan 21:50 2010
Picon

[ANN] YaScalaDT 0.2.1 available via update-site

Hi,

YaScalaDT 0.2.1 is released, no new features but some fixes and an
update site at :
  http://alchim31.net/eclipse

Fixes:
* fix the detection of error/warning in sbt console when compiling so
you now could use sbt to compile inside eclipse and have markers into
your editor (see online installation instruction)
* support multi-line message from scalac
* fix the auto-insertion of */ after /*
* fix the auto-insertion of * at the begining of new line in comments

Current features (same as previous announce):

* basic editor
** syntax highlighting  :comment, string, keyword
** completion of pair (..), {..}, "..", [..], /*..*/
** templates completion
* error marker from console output
* hyperlink/jumper on error/warning from console output (run from
maven, sbt, ...)
* basic preferences panel

The EPFL Scala plugin is not required, but it could work with YaScalaDT.

Installation (extract from
http://github.com/davidB/yascaladt-doc/blob/master/install.markdown) :

(Continue reading)

Miguel Garcia | 13 Jan 10:39 2010
Picon

[ANN] a mind-refreshing experience: Scala to Java AST processing


After working my way in detective mode through the sources of the Scala 
compiler, I've put together a write-up [1] to re-launch the "Scala to Java 
Translator" project. The draft notes summarize (all!) previous work, discuss 
work-in-progress, and identify open issues. For better results, you may also 
want to check previous write-ups on the Scala compiler [2]. And, please 
consider contributing chapters of your own to this developing story.

Miguel

[1] Another backend for the Scala compiler (generating Java-like languages)
    http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/ScalaToJava.pdf

[2] The Scala Compiler Corner, 
http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/ 

Bill Burdick | 13 Jan 11:48 2010
Picon

Re: [ANN] a mind-refreshing experience: Scala to Java AST processing

This is great!



Bill


On Wed, Jan 13, 2010 at 11:39 AM, Miguel Garcia <miguel.garcia <at> tuhh.de> wrote:

After working my way in detective mode through the sources of the Scala compiler, I've put together a write-up [1] to re-launch the "Scala to Java Translator" project. The draft notes summarize (all!) previous work, discuss work-in-progress, and identify open issues. For better results, you may also want to check previous write-ups on the Scala compiler [2]. And, please consider contributing chapters of your own to this developing story.


Miguel

[1] Another backend for the Scala compiler (generating Java-like languages)
  http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/ScalaToJava.pdf

[2] The Scala Compiler Corner, http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/


Antonio Cunei | 20 Jan 18:36 2010
Picon
Picon

Scala Days 2010 - Call for Speakers


Scala Days 2010 - Call for Speakers
====================================

Scala is a general purpose programming language designed to express
common programming patterns in a concise, elegant, and type-safe
way. It smoothly integrates features of object-oriented and
functional languages.

Scala Days is a forum for researchers and practitioners to share new
ideas and results of interest to the Scala community. Scala Days
2010 will be held at EPFL in Lausanne, Switzerland, on 15-16 April.

CALL FOR SPEAKERS
------------------

As part of Scala Days 2010, we will host a series of Technical
Talks, Experience Reports, and Tool Demonstrations. We invite
proposals from interested speakers who would like to present their
work experience with Scala, or give a demonstration of their project
or tool in front of a live audience; who would like to describe the
technical inner working of their Scala projects and the tools and
techniques they used to achieve their goals, or discuss Scala
technical topics of interest to the community.

We invite proposals for:

- Technical talks:
   - projects, tools, frameworks
   - programming techniques, libraries, compiler plugins,
     language extensions
   - other technical topics of interest to the Scala community

- Experience reports:
   - applications of Scala in industrial or academic contexts
   - language applications, DSLs, custom-designed libraries
   - integration in existing industrial environments
   - cost/benefit analyses, studies, results
   - experiences on Scala in education, teaching, research

- Demonstrations:
   - tools, applications, services, etc.
   - IDE integration, code development tools, programming facilities
   - interoperability with other languages or runtime environments
   - proofs of concept of projects in progress

To submit your proposal
------------------------

Please prepare an abstract of your talk (less than 1000 characters),
and submit it using the following link:

         http://days2010.scala-lang.org/node/add/submission

You may have to log in first; your usual Scala-lang account details
will work.

If you already submitted a complete paper to the First Scala
Workshop, you do not need to resubmit: your paper will be considered
for additional talks as well.

We will welcome submissions until 11 February 2010, and we will
notify all speakers by 17 February 2010.

We look forward to your proposals!

Important Dates
---------------

Proposals due:          Thursday, Feb 11, 2010 (24:00 in Apia, Samoa)
Notification:           Wednesday, Feb 17, 2010
Registration deadline:  Tuesday, Mar 30, 2010
Scala Days 2010:        Thu & Fri, Apr 15-16, 2010

Dmitry Grigoriev | 24 Jan 23:49 2010

lib.web 0.3: welcome to try!

Hello everyone!

I am proud to announce version 0.3 of lib.web (thin, stateless, strictly
typed Scala web framework). I believe it has finally grown to something
useful, at least for simple tasks. So I'm starting public ride as
maintainer. I don't expect significant API changes or changes I cannot
handle with  <at> deprecated (well, they maybe but few).

Take it at http://github.com/dimgel/lib.web/
NOTE: Please don't take master branch, it's empty. Take branch
0.3-SNAPSHOT or latest tag.

Also my archive is still available: http://dimgel.ru/lib.web/files/

Now I'll try to join scala-tools community and install lib.web into
scala-tools.org maven repository. When it's done I'll update to mailing
list.

I encourage everyone to try it and will appreciate any feedback,
including bug reports, suggestions about API improvements (particularly,
I love words 'private' and 'final', and you may find I love them more
than needed =)), new ideas and so on.

--------------------

New features in this version are: headers, file uploads, sessions,
stabilized core API, documented pluggability.

Previous announces:
version 0.1: http://thread.gmane.org/gmane.comp.lang.scala/16636
version 0.2: http://thread.gmane.org/gmane.comp.lang.scala.tools/3426

HEADERS

Initially I didn't want to manually parse header values to extract, for
example, charset parameter from Content-Type. Finally, this is how it
looks in lib.web:

val charset /* : String*/ = request.headers(ContentType).charset.get

Or, more safely:

val ctOpt /* : Option[ContentType] */ = request.headers.get(ContentType)
val charset =
    if (ctOpt.isEmpty) null
    else ctOpt.get.charset.getOrElse(null)

So, there are two basic ideas here:

1. Each header type has corresponding class which is a _semantic_
representation of header's data. Strict static typizatioin is honored.

2. Constructing header class instances from raw header values uses Scala
Combinator Parsers, and literally follows BNF described in RFC 2616
(HTTP 1.1) and others.

Please see examples: e06header (using headers), e07headercustom
(creating your own header classes).

FILE UPLOADS

There is nothing special here, but this functionality was missing in
previous versions. I use Apache Commons FileUpload. Also I took a look
at Servlet 3 spec draft and found there interface
javax.servlet.http.Part which looked to me pretty much like Apache's
FileItem. So I tried to mirror upcoming Servlet 3 in lib.web API.

Please see example: e11fileupload.

SESSIONS

Sessions are strictly typed too. Instead of attributes which can store
arbitrary data by string keys, lib.web sessions are generic classes
parametrized with single data type they store. Also, there're two
session implementations:

- HttpSessionWrapper just delegates to container-maintained sessions.

- CustomSession is completely independent: it deals with session cookie
on its own and can use any StateStorage strategy. I introduced it
because container looses session data when application is undeployed,
and this behaviour is often unacceptable. On the other hand,
CustomSession cannot be automatically replicated by container.

Please see examples: e08session (for HttpSessionWrapper),
e09sessioncustom (for CustomSession).

STABILIZED CORE API

I finally combed core package interfaces (Request and Response
hierarchies, etc.). I was once surprised to realize that core lib.web
architecture tends to ideologically mirror Servlet API, to certain
degree. Since that moment, I often looked at Servlet API and tried not
to go too far away from it.

DOCUMENTED PLUGGABILITY

ArtemGr gave me an idea (
http://article.gmane.org/gmane.comp.lang.scala.tools/3436 ) that I
should allow using lib.web parts, not only completely wrap over and
replace Servlet API. I made some effort in this direction, and this
arrived to be another reason to keep close to Servlet API structure.

Please see example: e17pluggability

--------------------

Unless Nibiru hits the Earth or some other cataclysm happens, my plans are:

0. Fix bugs as quick as possible.

1. Format all comments with scaladoc tags and add scaladoc pages
generation to project maven file.

2. Study ScalaQL announced by Miguel Garcia not so long ago, and finally
try to use this shit in a real project. Until now, it all was just
"academic" interest. Real project (e.g. forum) would be a good knock to
further library development.

3. I'm working on forms module. New version will be much more powerful:
nested forms (forms as reusable components of other forms), dynamic ajax
fields with no restrictions on dependency graph, full-blown client-side
validation (each atomic validator has its javascript counterpart) and so
on. This work is driven by my current job tasks, so it goes with good
quality but bad speed.

So. Thank you for reading (or skipping) so many words. =)

Cheers,
-- Dmitry

Antonio Cunei | 27 Jan 15:13 2010
Picon
Picon

Scala 2.8.0 Beta 1

After many months of hard work, the Scala Team is proud to release
the first beta of the much-awaited new Scala 2.8! Scala 2.8.0 Beta 1
is now available from our Download Page. It includes a huge number
of bug fixes with respect to 2.7.7, and many new features. This beta
is the foundation for the release of the upcoming final version
of 2.8.0, expected in a few months. You can download the Scala 2.8.0
Beta 1 pre-release from: http://www.scala-lang.org/downloads

The Scala 2.8.0 Beta distribution
=====================================

What is new?
============

The new Scala 2.8 codebase includes the following new fixes and features:

- Redesigned collection library

   The collection library has undergone a complete overhaul for Scala
   2.8, offering a more coherent and efficient design, while
   maintaining virtually complete compatibility with existing sources.
   Detailed information at: http://www.scala-lang.org/sid/3

- New array implementation, manifests for polymorphic arrays

   Handling of arrays has been simplified and optimized in Scala 2.8.
   The previous compiler magic has been replaced by a more systematic
   and predictable implementation in terms of implicit conversions.
   Full details at: http://www.scala-lang.org/sid/7

- Type specialization

   Scala 2.8 adds specialized type parameters, which enable the
   compiler to generate transparently multiple versions of a given
   definition, and to use the most specific version whenever the static
   type information at a call site allows it. Details at:
   http://www.scala-lang.org/sid/9

- Named and default arguments

   Named arguments improve the readability of method calls with many
   arguments. Default arguments reduce code duplication, and enable
   "copy" methods for case classes, useful to generate quickly modified
   copies of case classes. A complete description at:
   http://www.scala-lang.org/sid/1

- Package objects

   Packages can now contain besides classes and objects also methods,
   fields or type aliases. These are added to a package by declaring a
   package object. Package objects are still work in progress; more
   capabilities might come for 2.8 final or a release soon afterwards.

- Beefed up Scala Swing libraries, better documentation

   Components publish key events, input events can be consumed,
   refactored window subhierarchy, additional demos, Swing listeners
   are installed lazily, more complete component caching, minor
   refactorings, bugfixes, more Scaladocs. Design document at:
   http://www.scala-lang.org/sid/8

- Revamped REPL

   Many bugfixes. Tab-completion for all packages on the classpath, as
   well as object and instance methods and fields, including type
   aliases and package objects. Searchable history, integrated shell
   access, and a power mode which offers direct access to compiler
   internals.

- Implicits changes

   We have refined the implicit resolution process so that resolution
   is now able to determine type variables.

- Improved equality

   Equality across numeric types is to be consistent across all the
   primitives types, while also adhering to the equals/hashCode
   contract. Numeric comparisons will have the same results as they
   would between Java primitives. This is currently still being
   completed.

- Packrat parser combinators

   With support for packrat parsing, parser combinators are now able to
   handle left-recursive grammars and will show improved performance
   for ambiguous productions.

- Improved XML library

   Many bugfixes.

- Type constructor inference

   Type inference has been extended to deal with type constructors,
   so that, in certain cases, you can omit type parameter lists that
   contain higher-kinded types (aka type constructors, e.g., List).

- Improved Annotations

   Scala 2.8 adds support for nested java annotations. For annotations
   on fields, it is now possible to specify which synthetic members
   (getter / setter) will have the annotation. Documentation about
   Scala annotations can be found at: http://www.scala-lang.org/sid/5

- Enhanced actors

   New Reactors provide more lightweight, purely event-based actors
   with optional, implicit sender identification. Support for actors
   with daemon-style semantics was added. Actors can be configured to
   use the efficient JSR166y fork/join pool, resulting in significant
   performance improvements on 1.6 JVMs. Schedulers are now pluggable
   and easier to customize.

- Support for continuations

   Continuations are supported by a compiler plugin. This plugin is not
   included in this first beta, but will be added in subsequent
   releases.

Internal improvements
=====================

- New presentation compiler

   This new infrastructure, within the Scala compiler, enables IDEs to
   hook into the compiler to find efficiently information about the
   structure of the program under editing. This new code offers a
   better platform for the development of IDE plugins.

- New build manager

   The new feature used by for example Eclipse to detect intelligently
   changes in the files and compile only necessary Scala sources,
   instead of performing clean build on whole projects. This technique
   enables to significantly reduce the compilation time on bigger
   projects.

- Speed improvements

   The compiler now runs as optimised code. In addition, a number of
   improvements and fine-tunings have further improved the compiler
   speed up to 50%.

Bug fixes
=========

- Scala 2.8 includes a huge number of bug fixes; the main ones are
   listed at: http://www.scala-lang.org/node/299

Additional tools
================

- Scaladoc 2

   A new look-and-feel, automatic comments expansion and wiki-like
   syntax, as well as compile-time error checking. Read more about
   changes on the Scaladoc 2 mini-site at
   http://lampsvn.epfl.ch/trac/scala/wiki/Scaladoc

- Sbaz 2

   Sbaz includes many bug fixes and enhancements. It now gives better
   feedback to the user during lengthy downloads and while diagnosing
   dependency audits, which in turn have been re-factored and enhanced.
   Sbaz should work properly on Windows using either cmd or cygwin, and
   is now capable of reliably updating itself. Support for pack200 has
   been added, in some cases reducing file sizes up to 70%.

- Scalap

   A new Scalap, contributed by the community, is included. The new
   Scalap is aware of package objects and can decompile them by using
   <package_name>.package

- Scala IDE for Eclipse

   The IDE has been extensively reworked with much functionality moved
   into the Scala compiler where it can be better maintained and reused
   by non-Eclipse IDEs and other tools. The integration with Eclipse's
   JDT has been deepened, and much previously Scala-specific behaviour
   and functionality is now provided directly by the JDT leading to
   across the board improvements.

   During the beta preview period, the Scala IDE for Eclipse will be
   updated more frequently with respect to the main Scala beta
   releases. You can follow its development by using the following
   update site:

   http://www.scala-lang.org/scala-eclipse-plugin-beta-preview

   Please note that you must use this address as an update site within
   Eclipse as described on this page, it cannot be visited using your
   internet browser.

Acknowledgments and Thanks
==========================

Many members of the Scala community have helped us by fixing or
reporting bugs, contributing new code and tools (including some of
those listed above), and addressing user questions on the mailing
lists: their contributions help shaping the future of Scala day by
day.

- We would like to thank:

Paul Phillips, Miles Sabin, Ilya Sergey, Caoyuan Deng, James Matlik,
Frank Teubler, Kevin Wright, Manohar Jonnalagedda, Pedro Furlanetto,
Johannes Rudolph, Jason Zaugg, Seth Tisue, Ismael Juma, Mark Harrah,
Miguel Garcia, Colin Howe, Mirko Stocker, Spiros Tzavellas, Matt
Russell, David Taylor, and all the other frequent contributors to our
mailing lists, too many to list here. Thank you all!

The Scala Team at EPFL
======================

Martin Odersky, Lukas Rytz, Hubert Plociniczak, Iulian Dragos,
Gilles Dubochet, Philipp Haller, Aleksandar Prokopec, Antonio Cunei,
Tiark Rompf, Eugene Zouev, Donna Malayeri, Phil Bagwell, Adriaan
Moors, Ingo Maier.

Ismael Juma | 27 Jan 18:35 2010
Picon

Re: Scala 2.8.0 Beta 1

Hi all,

On Wed, Jan 27, 2010 at 2:13 PM, Antonio Cunei <antonio.cunei <at> epfl.ch> wrote:
> After many months of hard work, the Scala Team is proud to release
> the first beta of the much-awaited new Scala 2.8!

Congratulations and thanks. :) So much work went into this beta that
it almost feels like a final release! Hopefully a short-ish road to
the real final release now. ;)

Best,
Ismael

Rich Dougherty | 27 Jan 20:26 2010
Picon

Re: Scala 2.8.0 Beta 1

On Thu, Jan 28, 2010 at 3:13 AM, Antonio Cunei <antonio.cunei <at> epfl.ch> wrote:
> - Support for continuations
>
>  Continuations are supported by a compiler plugin. This plugin is not
>  included in this first beta, but will be added in subsequent
>  releases.

For those who want to have a play with continuations, I've written
some instructions for building the plugin from source.

http://blog.richdougherty.com/2010/01/scala-280-beta-1-released.html

Thanks a lot to the Scala team for an excellent release.

Rich
--
Rich Dougherty
http://www.richdougherty.com/

Meredith Gregory | 28 Jan 22:55 2010
Picon

Re: [scala] Scala 2.8.0 Beta 1

Dear Rich,


i followed your blog instructions to the letter. Everything works up to building the continuations plugin, then we're missing a lib. See the trace below.

Best wishes,

--greg

bash-3.2$ ANT_OPTS=-Xmx512m ant test
Buildfile: build.xml

build.plugin:
    [mkdir] Created dir: /Users/lgm/work/src/devtools/scala/continuations/build/build.plugin
   [scalac] Compiling 5 source files to /Users/lgm/work/src/devtools/scala/continuations/build/build.plugin

pack.plugin:
    [mkdir] Created dir: /Users/lgm/work/src/devtools/scala/continuations/build/pack
      [jar] Building jar: /Users/lgm/work/src/devtools/scala/continuations/build/pack/selectivecps-plugin.jar

build.library:
    [mkdir] Created dir: /Users/lgm/work/src/devtools/scala/continuations/build/build.library
   [scalac] Compiling 11 source files to /Users/lgm/work/src/devtools/scala/continuations/build/build.library
   [scalac] error: error while loading ForkJoinPool, Missing dependency 'class java.util.concurrent.RunnableFuture', required by /Users/lgm/work/src/devtools/scala/continuations/lib/jsr166y.jar(jsr166y/ForkJoinPool.class)
   [scalac] one error found

BUILD FAILED
/Users/lgm/work/src/devtools/scala/continuations/build.xml:89: Compile failed with 1 error; see the compiler error output for details.

Total time: 13 seconds
bash-3.2$

On Wed, Jan 27, 2010 at 11:26 AM, Rich Dougherty <rich-vWrHE/hLzd+lVyrhU4qvOw@public.gmane.org> wrote:
On Thu, Jan 28, 2010 at 3:13 AM, Antonio Cunei <antonio.cunei-p8DiymsW2f8@public.gmane.org> wrote:
> - Support for continuations
>
>  Continuations are supported by a compiler plugin. This plugin is not
>  included in this first beta, but will be added in subsequent
>  releases.

For those who want to have a play with continuations, I've written
some instructions for building the plugin from source.

http://blog.richdougherty.com/2010/01/scala-280-beta-1-released.html

Thanks a lot to the Scala team for an excellent release.

Rich
--
Rich Dougherty
http://www.richdougherty.com/



--
L.G. Meredith
Managing Partner
Biosimilarity LLC
1219 NW 83rd St
Seattle, WA 98117

+1 206.650.3740

http://biosimilarity.blogspot.com

Gmane