Google bugün Go programlama dilini lanse etti. Aslında 2007 yılında Rob Pike, Ken Thompson ve Robert Griesemer eşliğinde başlanmış. C/C++ nin yerini alması bekleniyormuş. Söz dizimine ve bazı özelliklerine bakınca c/c++, python, javascript, pascal, modula, oberon karışımı gibi bir şey geldi.
http://golang.org/
http://www.youtube.com/watch?v=rKnDgT73v8s
package main
import "fmt"
func main() {
fmt.Printf("Merhaba, Ubuntu Türkiye Topluluğu")
}
EK : Ubuntu 9.10 üzerinde Go'yu yüklemek için aydınlatıcı bir yazı ; http://ubuntuforums.org/showthread.php?p=8291692#post8291692
yaw nasıl kurulacağını anlamadım bir türlü :-/
http://golang.org/doc/install.html#tmp_57
gccgo diyor bir sürü şey diyor kafamı karıştırdı.Derleyicisini nasıl kruarım ?
@ayro,
http://golang.org/doc/gccgo_install.html burada gccgo için kurulum, kullanım basitçe anlatılmış.
svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
mkdir objdir
cd objdir
../gccgo/configure --enable-languages=c,c++,go
make
make install
---
gcc hariç ; 6g ile 64bit için, 8g ile 32bit için derleyip, çalıştırabiliyoruz. gcc den daha hızlı derliyormuş ama gcc ile üretilenin daha verimli çalıştığını belirtiyorlar.
6g merhaba.go
6l merhaba.6
./6.out
gibi
ek : gccgo 'yu yüklerken gmp ve mpfr kütüphanelerini istiyor. eğer öyle bir mesaj alırsanız;
http://gmplib.org/
http://www.mpfr.org/
yalnız bunları yüklememe rağmen gccgo yu yüklerken yine hata mesajı aldım. daha sonra tekrar deneyecem. 6g ile derleme basit geldi. zaten yepyeni bir dil öyle yüzüstü denemeler işte.
Alıntı Yapayrox@mr:~$ su
Password:
root@mr:/home/ayrox# svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
svn: Can't connect to host 'gcc.gnu.org': Connection refused
hata bende mi acaba ??
bende herhangi bir bağlantı problemi vermedi. tekrar deneyebilir misiniz ?
Teyit edeyim, bende de bağlantı problemi vermiyor. Geçici bir sorun olabilir.
Alıntı yapılan: gio - 13 Kasım 2009 - 23:09:36
bende herhangi bir bağlantı problemi vermedi. tekrar deneyebilir misiniz ?
hocam snaıyorum bizim üni ile ilgili bir problem olabilir.Kapatıyorlarda bağlantıları falan filan
tekrar denedim yine aynı sonuç
svn için sınırlama vardır "firewall" arkasında ya da kısıtlama için ne kullanılıyorsa. Şöyle dene:
svn checkout http://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.
Alıntı yapılan: canosayan - 15 Kasım 2009 - 07:31:44
bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.
Can merhaba.
gccgo ile mi derlemeye çalıştın ? Ken amcanın yeni derleyicisi ile derleyip çalıştırabildim.
Alıntı yapılan: gio - 15 Kasım 2009 - 07:47:20
Alıntı yapılan: canosayan - 15 Kasım 2009 - 07:31:44
bende de derlerken hata verdi. örnek program bile derlenmedi. merhaba dünya diyemedik. neyse artık.
Can merhaba.
gccgo ile mi derlemeye çalıştın ? Ken amcanın yeni derleyicisi ile derleyip çalıştırabildim.
açıkçası bu şekilde derleme bilgim çok az. visiul studio kullanan kesimdendim önceden.
zaten genel amacım denemekti. 8g file.go tarzı bir kullanım vardı tanıtım sayfasında onu denedim.
gerçi kurulum tam mı onu da bilmiyorum bir yandan iş bir yandan kurulum yapıyordum.
bu işin wave i yok mudur?
#Google Go Vars
export GOROOT=~/go
export GOOS=linux
export GOARCH=386
PATH=${PATH}:$HOME/bin
GOARCH=386 şeklinde ayarladın değil mi ? belki gözünden kaçıp amd64 şeklinde kalmış olabilir mi ? Eğer değilse bile belki tam kurulum olmamıştır. Yoksa normalde derlemesi lazım.
Alıntı yapılan: gio - 15 Kasım 2009 - 07:55:12
#Google Go Vars
export GOROOT=~/go
export GOOS=linux
export GOARCH=386
PATH=${PATH}:$HOME/bin
GOARCH=386 şeklinde ayarladın değil mi ? belki gözünden kaçıp amd64 şeklinde kalmış olabilir mi ? Eğer değilse bile belki tam kurulum olmamıştır. Yoksa normalde derlemesi lazım.
386 yaptım. neyse çok önemli değil. daha önemli işlerim var.
svn den başka ne yapabilirim ? Golang denemek istiyorum.
@ayro,
svn sadece gccgo için gerekiyor. diğer şekilde de derleniyor -eğer illaki gccgo ile derlemek mühimse bilemiyorum. diğer türlüsü gayet basit zaten. en azından yazıp, kurcalığını kodları deneyebilirsiniz. svn hariç bir çözüm denk gelirse, paslamaya çalışırım.
Alıntı yapılan: ayro - 15 Kasım 2009 - 22:00:40
svn den başka ne yapabilirim ? Golang denemek istiyorum.
Bu yukarıdaki sorunun için bir soru mu? Eğer öyleyse benim önerimi gördün mü?
Alıntı yapılan: heartsmagic - 16 Kasım 2009 - 01:57:42
Alıntı yapılan: ayro - 15 Kasım 2009 - 22:00:40
svn den başka ne yapabilirim ? Golang denemek istiyorum.
Bu yukarıdaki sorunun için bir soru mu? Eğer öyleyse benim önerimi gördün mü?
kusura bakma hocma görmemişim
root@mr:/home/ayrox# svn checkout http://gcc.gnu.org/svn/gcc/branches/gccgo gccgosvn: Working copy 'gccgo' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
benim için problem değil.Golang 'ı bir şekilde derleyeyim yeter
svn cleanup
komutunu verip tekrar deneseydin. Öyle tavsiye vermiş.
hocam tam oluyordu
Alıntı Yapsvn: REPORT of '/svn/gcc/!svn/vcc/default': Chunk delimiter was invalid (http://gcc.gnu.org)
dedi.Komple alıntı
Alıntı Yaproot@mr:/home/ayrox# svn checkout http://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
A gccgo/libgcc/configure
A gccgo/libgcc/static-object.mk
A gccgo/libgcc/Makefile.in
A gccgo/libgcc/gstdint.h
A gccgo/libgcc/configure.ac
A gccgo/libgcc/generic-morestack.c
A gccgo/libgcc/empty.mk
A gccgo/libgcc/config
A gccgo/libgcc/config/t-softfp
A gccgo/libgcc/config/ia64
A gccgo/libgcc/config/ia64/__divxf3.asm
A gccgo/libgcc/config/ia64/t-fprules-softfp
A gccgo/libgcc/config/ia64/_fixunstfdi.asm
A gccgo/libgcc/config/ia64/t-softfp-compat
A gccgo/libgcc/config/ia64/t-ia64
A gccgo/libgcc/config/ia64/_floatditf.asm
A gccgo/libgcc/config/ia64/_fixtfdi.asm
A gccgo/libgcc/config/ia64/tf-signs.c
A gccgo/libgcc/config/t-tls
A gccgo/libgcc/config/alpha
A gccgo/libgcc/config/alpha/t-crtfm
A gccgo/libgcc/config/libbid
A gccgo/libgcc/config/libbid/_lt_sd.c
A gccgo/libgcc/config/libbid/bid128_to_int64.c
A gccgo/libgcc/config/libbid/_sd_to_df.c
A gccgo/libgcc/config/libbid/bid_sqrt_macros.h
A gccgo/libgcc/config/libbid/_ne_sd.c
A gccgo/libgcc/config/libbid/bid_convert_data.c
A gccgo/libgcc/config/libbid/_div_dd.c
A gccgo/libgcc/config/libbid/bid32_to_bid64.c
A gccgo/libgcc/config/libbid/_sd_to_tf.c
A gccgo/libgcc/config/libbid/_ge_dd.c
A gccgo/libgcc/config/libbid/_dd_to_df.c
A gccgo/libgcc/config/libbid/bid128_sqrt.c
A gccgo/libgcc/config/libbid/bid_decimal_data.c
A gccgo/libgcc/config/libbid/ChangeLog
A gccgo/libgcc/config/libbid/_usi_to_dd.c
A gccgo/libgcc/config/libbid/_div_td.c
A gccgo/libgcc/config/libbid/bid_inline_add.h
A gccgo/libgcc/config/libbid/_eq_dd.c
A gccgo/libgcc/config/libbid/bid64_scalb.c
A gccgo/libgcc/config/libbid/_unord_sd.c
A gccgo/libgcc/config/libbid/_isinfd32.c
svn: REPORT of '/svn/gcc/!svn/vcc/default': Chunk delimiter was invalid (http://gcc.gnu.org)
Acaba sorun sende mi yoksa genelde mi? Ben de akşam bir dener geri bildirim yaparım.
export GOROOT=$HOME/go
export GOARCH=386
export GOOS=linux
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH
mkdir bin
chmod 755 bin
yaptım(hepsi /home/ayrox dizininde) daha sonra
sudo apt-get install python-setuptools python-dev
sudo apt-get install mercurial
Çıkış yapıp tekrar girdim ardından ;
g clone -r release https://go.googlecode.com/hg/ $GOROOT
Alıntı Yaproot@mr:/home/ayrox# cd $GOROOT/src
root@mr:/home/ayrox/go/src# ./all.bash
installed quietgcc as /home/ayrox/bin/quietgcc but 'which quietgcc' fails
double-check that /home/ayrox/bin is in your $PATH
dedi :-/ fikri olan varmı ? Nerede yanlış yaptm ?
home/ayrox/ altında bin var !dedim .bin mi olacaktı sonra
mv bin .bin yaptım ;
Alıntı Yaproot@mr:/home/ayrox/go/src# ./all.bash
$GOBIN is not a directory or does not exist
create it or set $GOBIN differently
dedi sanırım mkdir .bin mi yapmam lazımdı napmam lazımdı ?
Sorun nedir bilmiyorum ama buradaki (http://unixlab.blogspot.com/2009/11/installing-googles-go-language-on.html) anlatıma uyarak az önce problemsiz çalıştırdım.
Oluşturduğunuz klasörleri silip tekrar deneyin isterseniz.
sudo apt-get install bison gcc libc6-dev
apt-get install mercurial
Gerekli kurulumları yaptıktan sonra home dizininde go isimli bir klasör, onun içinde de go derleyicisinin bulunacağı bin adlı bir dizin oluşturun.
mkdir go
mkdir go/bin
gedit .bashrc
komutu ile bashrc dosyasını açıp aşağıdaki değerleri ekleyin.
export GOROOT=/home/kullanıcadı/go/hg
export GOOS=linux
export GOARCH=386
export GOBIN=/home/kullanıcıadı/go/bin
Eklemeleri yaptıktan sonra PATH değişkenini güncelleyin
export PATH=$PATH:$GOBIN
Şimdi yazdığınız komutlar işe yaramış mı kontrol edelim.
env | grep '^GO'
Eğer işe yaramışsa aşağıdakine benzer bir çıktı almanız gerekir, yoksa yukardaki adımları tekrar kontrol etmenizde fayda var.
GOBIN=/home/kullanıcıadı/go/bin/
GOARCH=386
GOROOT=/home/kullanıcadı/go/hg
GOOS=linux
Mercurial'i kullanarak kaynak kodu indirin
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
İndirdiğiniz kodu derleyin
cd $GOROOT/src
./all.bash
Aşağıdaki mesaj ile işlem sona erecektir işler yolunda gittiyse
N known bugs; 0 unexpected bugs
Ben de N, 1 olarak yazdı.
Eğer bir problem olmadıysa yükleme bitti demektir.Deneme amaçlı hello.go isimli bir dosya oluşturup aşağıdakileri yazın.
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
Derlemek için:
8g hello.go
yazın. 8g bilgisayarınıza göre 6g'de olabilir.
8l hello.8
komutunu da yazdıktan sonra program çalıştırılabilir hale gelmiş demektir.
./8.out
yazıp programı çalıştırabilirsiniz.
eyw hocam oldu
$ env | grep '^GO' çıktısı:
GOBIN=/home/macellan/go/bin
GOARCH=386
GOROOT=/home/macellan/go/hg
GOOS=linux
İlginçtir path'i belirlememe rağmen 8g komutu bulunamıyor.
~go/bin dizinine girip ./8g komutunu verince derlemeyi yapabiliyorum.
Sizde de benzer bir sorun oldu mu?
8g yerine 6g deneyin bir de.
Bilgisayarım intel. Bu yüzden 8g olması gerekiyor.
Sorunumun path ile ilgili olduğunu düşünüyorum ama kurulumda neyi eksik yaptığımı anlamadım.
Neyse sağlık olsun. :) Zaten ~go/bin içinden 8g dosyasını çağırınca derleme yapılabiliyor.
Alıntı yapılan: gotocan - 24 Kasım 2009 - 15:14:36Bilgisayarım intel. Bu yüzden 8g olması gerekiyor.
64 bit(amd64) için 6g,
32 bit(386) için 8g diye demişler.
Intel derken kavram karmaşası(amd64 olayı) olmasın ?
Alıntı Yaphere is also a suite of compilers with different (and odd) names for each architecture: 6g for the 64-bit x86, 8g for the 32-bit x86, and more.
http://golang.org/doc/go_tutorial.html#tmp_32
Evet kavramları karıştırmışım biraz.
32 bit desem daha doğru olur.
Nitekim bulunduğu klasörden ./8g olarak çalıştırınca düzgün bir derleme yapabiliyorum.
Eğer yanlış derleyici kullanıyor olsaydım derleme gerçekleşmezdi diye düşünüyorum.
Esenlikler...
tamam şimdi anladım. ben de karıştırmışım :)
gccgo ile derlemeyi denediniz mi hiç ? 64bit işlemcilerde yüklerken bir sorunu hallederken başka biri çıkıyor. bir türlü sorunsuz gccgo kurulumu yapamadım.