We are currently publishing a summary of each of the weekly meetings of the Scala Core Team.
-- Francois ARMAND http://fanf42.blogspot.com http://www.normation.com
[...]
Scala community extension lib
exploring libs to include:
- scala-arm
- scala-io: in good shape, docs, artifacts on scala-tools, but not widely used yet, SBT: http://jesseeichar.github.com/scala-io/getting-started.html
- STM
- releasable CCSTM-based codebase should be right around the corner
- good quality code
- graph
- specialized numeric
- fast, but not backwards compatible
- it overlaps with existing code in stdlib
- can we give people that don’t care about backwards compatiblity a way to drop this in and give it a whirl?
- logging
- too many choices
- pick one?
- define an api?
- testing frameworks
- scalacheck
- scalatest- specs
- DB wrappers (which ones?)
- configuration
- anti-xml: check back when more stable
What about:
- JSON serialization (lift-json is a good candidate here)
- scalaz (it seems to be a good candidate for the domain it take care off)
Is this library good enough to remain in the standard library by the
way? I've heard of quite a few problems.
Best,
Ismael
Oh, you right... I forgot about that one, sorry.
> As for Scalaz, I personally would want to wait for the Scalaz7 API to
> stabilize. I think the type-trait domain has some readjustments to make.
There is no urgency, just a question to know if it was considered. So
thanks for the reply !
- JSON serialization (lift-json is a good candidate here)
- scalaz (it seems to be a good candidate for the domain it take care off)
This discussion is not about the standard library though, it's about
the "Scala community extension lib". Having said that, I would also
wait a bit (but not forever) before making a choice when it comes to
JSON as things are still evolving there.
Best,
Ismael
Josh: sbt build, patch for bug in scaladoc (review by ureche)
- scala-io: in good shape, docs, artifacts on scala-tools, but not widely used yet, SBT: http://jesseeichar.github.com/scala-io/getting-started.html
I heard there are actually multiple (compatible?) implementations around the corner, is that correct?- STM
� - releasable CCSTM-based codebase should be right around the corner
� - good quality code
Please yes. Integrate the improvements from d_m (http://www.azavea.com/blogs/labs/2011/06/scalas-numeric-type-class-pt-2/ ). This would probably take a lot of immediate pressure away from all the current performance problems which led to the thoughts about hard inline requirements in the latest SID.- specialized numeric
� - fast, but not backwards compatible
� - it overlaps with existing code in stdlib
� - can we give people that don�t care about backwards compatiblity a way to drop this in and give it a whirl?
I'm not really sure if "logging" makes sense at all. There are so many different use cases that I'm not sure that something defined in the source code is general enough. People log performance with VisualVM and JVMTI, people use aspects to manage other logging requirements and much more.- logging
� - too many choices
� � - pick one?
� � - define an api?
- DB wrappers (which ones?)
- anti-xml: check back when more stable
We are currently publishing a summary of each of the weekly meetings of the Scala Core Team.
Bugs
optimiser
in principle, can’t optimise array loads away, since that may mask RuntimeExceptions
I reiterate that this is ridiculous. Please stop saying it. There is
no truth to it.
>> - As far as I understand having some decent IO library in Scala
>> requires at least Java 7.
>
> I reiterate that this is ridiculous. Please stop saying it. There is
> no truth to it.
Well, then we have to disagree here.
Personally I view requirements like copying a file or traversing a
directory to be not so much ridiculous. Both is not possible in
versions before Java 7.
Bothering with `java.io.File` and related jokes is a pure waste of time.
Thanks and bye,
Simon
Somehow a significant percentage of the world's software was written
before last tuesday. Everyone wants their flying car and their ponies,
but to say that you can't write an I/O library without java7 is like
saying you couldn't write a todo list app before the ipad 2 came out.
And, what are you talking about? You can't traverse a directory or copy
a file? How has all the traversing and copying been going on then? Who
cares if there's a single *java* function to do those things? The point
of a library is that you have the opportunity to write your own
functions. That's what it's for.
I'm not speaking about single java function vs. building my own stuff,
I'm concerned about things just not being possible at all.
> The point of a library is that you have the opportunity to write
> your own functions. That's what it's for.
The problem is that you can't just write "your own functions" because
the VM has abstracted the file system away too much and it lacked the
intrinsics to support appropriate features before 7. It is not like
.NET where people can just drop down to C++/"unsafe"/call Win32 stuff
and play with C structs to get the data they need.
So please go ahead and tell me how to copy a file in your opinion
before Java 7.
The only thing you can do is creating a new, empty file and moving
bytes from the old one to the new one either with Readers/Writers or
with the Channel API. Both make you loose everything associated with
the original file like metadata and attributes.
How would you traverse a directory without blowing up the VM if some
unfortunate symlink points to a parent folder?
It's things like that which just don't work without shipping our own
binary .dll/.so or using a runtime which decides to support the
necessary intrinsics, but I'll eat my hat if you come up with a
solution which obviously hasn't been found by everyone else since Java
1.0. :-)
Thanks and bye,
Simon
I'm sure you can find the function I wrote which copies files. I am
intimately aware of the imperfections of java I/O. Everything has
imperfections, including the underlying OSes, so it's not like you are
entering some promised land even if the java runtime is bug free. None
of this has anything to do with whether you can ship a decent I/O
library: you can.
For yourself, you can pick anything you want and say you can't ship a
decent XXX library without it. It is your privilege. However those of
us responsible for the distribution have to deal with the world as it
exists. (We "go to war with the army we have", not "the army we might
like to have", or "the army we might have at some future date.") The
"army we have" is still java5. Sooner or later it will be java6. It
will not be java7 for a long while yet.
I find File.getCanonicalPath to be useful in this circumstance.
Hi everyone!Any news when people can expect the switch from Ant to SBT by default?
Josh: sbt build, patch for bug in scaladoc (review by ureche)
- scala-io: in good shape, docs, artifacts on scala-tools, but not widely used yet, SBT: http://jesseeichar.github.com/scala-io/getting-started.html
- How platform-dependent is it? I'm pretty wary including anything that big with deep requirements of Java classes while constantly seeing how much trouble this causes for other ports of the language.
- As far as I understand having some decent IO library in Scala requires at least Java 7. So what would be the compatibility story here? Optional Jar files shipped by default, which are allowed to require a more up-to-date Java version?
I'm not against having it, but I certainly lack the necessary information to form an opinion. Assuring that Scala IO isn't totally tied to the Java platform and having a clear overview over which dependencies have to be rewritten for other platforms would be great.
- STM
- releasable CCSTM-based codebase should be right around the corner
- good quality code
I heard there are actually multiple (compatible?) implementations around the corner, is that correct?
- specialized numeric
- fast, but not backwards compatible
- it overlaps with existing code in stdlib
- can we give people that don’t care about backwards compatiblity a way to drop this in and give it a whirl?
Please yes. Integrate the improvements from d_m (http://www.azavea.com/blogs/labs/2011/06/scalas-numeric-type-class-pt-2/ ). This would probably take a lot of immediate pressure away from all the current performance problems which led to the thoughts about hard inline requirements in the latest SID.
I'm at the moment trying to SI-4658 and not having a division operation is a pita. Isn't it possible to fix it, even if it creates problems with backward compatibility? (Migration manager, maybe?)
- logging
- too many choices
- pick one?
- define an api?
I'm not really sure if "logging" makes sense at all. There are so many different use cases that I'm not sure that something defined in the source code is general enough. People log performance with VisualVM and JVMTI, people use aspects to manage other logging requirements and much more.
What's the status of Slick, "a common framework for connecting with databases and distributed collections"? It was mentioned in some talks (e. g. Scala eXchange) but there seems to be no information available on the internet about it.- DB wrappers (which ones?)
Any plans on shipping an optional scala-xml package like scala-swing meanwhile, which can be left out of deployment if not required? (I know it is actually needed for compilation, but e. g. on Android platforms cutting down the filesize could lift the lengthy requirement of running ProGuard even for development builds.
- anti-xml: check back when more stable
Thanks and bye,
Simon
Agreed.
In fact, the specialized-numeric work I've done *can't* solve the
inline class problem. I've created a compiler plugin which does do
inlining for Numeric specifically *because* there isn't another option.
I certainly don't think the work I've done obviates the need for Josh's
SID. I (and other authors) will benefit immensely from inline classes
(as well as better type trait/type class support).
-- Erik
P.S. Simon, your division issue raises a different question: is there a
possibility that the interface of scala.math.Numeric can be changed?
Many (most?) would-be users of Numeric hit the same issue as you did,
but changing the interface (even just by adding division) has
compatibility implications.
On Sat, Aug 27, 2011 at 7:25 AM, Simon Ochsenreither <si...@ochsenreither.de> wrote:
Hi everyone!Any news when people can expect the switch from Ant to SBT by default?
Josh: sbt build, patch for bug in scaladoc (review by ureche)
There's a list of TODOs here: https://wiki.scala-lang.org/display/SIW/SBT+BuildOnce everyone has a chance to try it out and the "must have" TODOs are done, I don't see any reason to keep Ant. That's right, speak up with features/issues before it's too late, because once that list is gone, I'll be pushing to commit the SBT build into trunk.
--
Grzegorz Kossakowski
That is strange because I see from 40-80% CPU utilization on my box. Any chance you could dig into that a little further? It's hard to debug something you can't see, and I don't see any reason why SBTRunner would act differently, thread-wise, than the ant "Partest" task...
I (and other authors) will benefit immensely from inline classes
(as well as better type trait/type class support).
-- Erik