sqlshell

14 views
Skip to first unread message

Örjan

unread,
Apr 6, 2011, 12:55:27 PM4/6/11
to scala-sverige
Hej,

Hittade denna SQL utility idag som är skriven i Scala. (Ingen nyhet
för de som följer http://implicit.ly )

>>
SQLShell is an open source SQL command line tool, written in Scala; it
is similar in concept to tools like Oracle's SQL*Plus, the PostgreSQL
psql command, and MySQL's mysql tool. SQLShell has history management,
readline-like support (with tab completion), and other useful
features.
>>

http://software.clapper.org/sqlshell/

Den verkar dock inte ha något "migrations" eller oberoende-rdbms
script som Lift o http://code.google.com/p/scala-migrations/

Örjan

Dan Bergh Johnsson

unread,
Apr 6, 2011, 3:03:08 PM4/6/11
to <scala-sverige@googlegroups.com>
Jag funderar och funderar, men kommer inte på något vettigt.

Tråd-baserade actors har "receive" med signaturen "def receive[R](f: PartialFunction[Any, R]): R", dvs den evaluerar till värdet av receive-hanteringen. Fullt logiskt.

Men! För event-baserade actors har motsvarigheten "react" istället signaturen "def react(handler: PartialFunction[Any, Unit]): Nothing ", dvs den evaluerar aldrig till någonting.

Hur kommer det sig att den inte evaluerar till något? Jo djupt under ytan hittar vi

trait Reactor ...
protected def react(handler: PartialFunction[Msg, Unit]): Nothing = {
...
throw Actor.suspendException
}

Dvs den kastar medvetet för att se till att den inte fortsätter exekveringen.

Detta gör att i koden
react {
case _ => {
println("reacting")
}
}
println("reacted")
så kommer "reacted" aldrig att skrivas ut. Inte helt intuitivt.

Så varför evaluerar den inte till någonting? Varför har man valt denhär designen? Vad har den för fördelar - jag kan inte komma på någon tilltalande anledning.

Kan någon sprida lite ljus över mysteriet?

Dan Bergh Johnsson

Orjan Lundberg

unread,
Apr 6, 2011, 3:33:41 PM4/6/11
to Dan Bergh Johnsson, scala-...@googlegroups.com
Hej, 

har du läst Kap 3.2 i  http://infoscience.epfl.ch/record/128406/files/haller_tcs2008_accepted.pdf ? Har sett något nyare dokument också kan inte minnas var. (Kan vara hallers Actors bok.) 

Örjan 

√iktor Ҡlang

unread,
Apr 6, 2011, 4:01:54 PM4/6/11
to scala-...@googlegroups.com

Hört talas om Akka?


--
Det här meddelandet skickas till dig eftersom du prenumererar på gruppen scala-sverige i Google Groups.
Om du vill göra ett inlägg i den här gruppen skickar du e-post till scala-...@googlegroups.com.
Om du vill sluta prenumerera på den här gruppen skickar du e-post till scala-sverig...@googlegroups.com.
För fler alternativ, besök gruppen på http://groups.google.com/group/scala-sverige?hl=sv.

Dan Bergh Johnsson

unread,
Apr 6, 2011, 4:21:11 PM4/6/11
to Orjan Lundberg, <scala-sverige@googlegroups.com>
6 apr 2011 kl. 21.33 skrev Orjan Lundberg:

Hej, 


Nu har jag det.

En väldigt bra förklaring. react-blocket är en registrerad continuation och den ursprungliga call-stacken finns helt enkelt inte längre (i någon meningsfull mening) när det invokeras. Därmed finns det inte någon möjlighet att returnera något - alltså blir typen Nothing.

Tack för länken

   Dan Bergh Johnsson


Reply all
Reply to author
Forward
0 new messages