LINUX.ORG.RU — Русская информация об ОС Linux

[#]  
antony986 (фотография)

Python vs Lisp. Расстановка точек

питон:

den@ira-desktop:~/work/test$ time python -O test.py 
('answer: ', 39)

real	0m33.035s
user	0m32.890s
sys	0m0.084s
den@ira-desktop:~/work/test$

clisp:

den@ira-desktop:~/work/test$ time clisp test.lsp
39

real	2m44.491s
user	2m42.970s
sys	0m1.464s
den@ira-desktop:~/work/test$

def test():
    r = 0
    for i in range(0, 10000):
        for j in range(0, 10000):
            r = (r + (i * j) % 100) % 47
    return r
r = test()
print("answer: ", r)
(defun test ()
    (setq r 0)
    (dotimes (i 10000 r)
        (dotimes (j 10000 r)
            (setq r (mod (+ r (mod (* i j) 100)) 47))
        )
    )
)

(write (test))

а теперь докажите, что лисп не тормознутое УГ

antony986 * (08.02.2010 22:52:51)
Juick

[#]  
jtootf (фотография)

феерическая расстановка точек над лиспом?

jtootf **** (08.02.2010 22:57:20)
[#]  

Какой ужас! Вы хотите новую тему на несколько тысяч комментариев?

anonymous (08.02.2010 22:58:00)
[#]  

Что ж ты тормозной такой питон используешь, надо cpython или unladden swallow. Тогда лисп еще смешнее покажется.

anonymous (08.02.2010 22:59:05)
[#]  

На сколько помню, там модули входящие в сам питоновский скрипт компилируются в байткод. Это наверное может дать +% к выполнению скрипта?

CruncH (08.02.2010 22:59:43)
[#] Ответ на: комментарий от CruncH 08.02.2010 22:59:43  
tia (фотография)

Почти любой нормальный динамический язык может компилироваться в байт-код. Если ТС не компилил в байт-код, то лисперы набегут и начнут доказывать что автор - малолетний школьник ибо проигрыш лиспа будет ещё более очевиден.

tia * (08.02.2010 23:02:22)
[#]  

> а теперь докажите, что лисп не тормознутое УГ

Не стал даже смотреть код, просто не используй clisp - это интерпретатор, используй нормальную компилирующую реализацию: SBCL или ClozureCL

archimag ** (08.02.2010 23:02:33)
[#] Ответ на: комментарий от CruncH 08.02.2010 22:59:43  
antony986 (фотография)
den@ira-desktop:~/work/test$ time python test2.py 
('answer: ', 39)

real	0m32.305s
user	0m32.162s
sys	0m0.084s
den@ira-desktop:~/work/test$

без pyc и pyo

antony986 * (08.02.2010 23:04:34)
[#]  

Ну вы даете... такой кривой код, да еще и на одном из самых медленных лиспов. Сейчас проведу бенчмарк и отпишусь.

dmitry_vk ** (08.02.2010 23:06:47)
[#]  

C++ круче всех

#include <iostream>
using namespace std;

int test()
{
	int r = 0;
	for (int i = 0; i < 10000; ++i)
		for (int j = 0; j < 10000; ++j)
			r = (r + (i * j) % 100) % 47;
	return r;
}
int main()
{
	int r = test();
	cout << "answer: " <<  r << endl;
	return 0;
}
answer: 39

real	0m0.681s
user	0m0.680s
sys	0m0.000s

На Питоне пример даёт

('answer: ', 39)

real	0m25.078s
user	0m24.750s
sys	0m0.252s
anonymous (08.02.2010 23:08:11)
[#] Ответ на: комментарий от dmitry_vk 08.02.2010 23:06:47  

На моей машине SBCL решает эту задачу примерно в 20 раз быстрее, чем Python

archimag ** (08.02.2010 23:15:46)
[#]  
bibi (фотография)

А пыхапэ смотрит на вас на на Г

#!/usr/bin/php
<?php

function test()
{
    $r = 0;
    for ($i = 0; $i < 10000; $i++) {
        for ($j = 0; $j < 10000; $j++) {
            $r = ($r + ($i * $j) % 100) % 47;
        }
    }
    return $r;
}

$r = test();
echo "answer: $r\n";
$ time ./test.py
('answer: ', 39)

real    0m32.278s
user    0m32.032s
sys     0m0.015s

$ time ./test.php
answer: 39

real    0m19.797s
user    0m19.723s
sys     0m0.009s

PS: Завершения аналога на руби так и не смог дождаться - прибил.
PPS: Про аналог на C++ скромно умолчу...

bibi (08.02.2010 23:16:08)
[#] Ответ на: комментарий от dmitry_vk 08.02.2010 23:06:47  

На моей машине (с теми же файлами, без изменений): [code=bash] dvk@localhost ~/tmp $ time python test.py ('answer: ', 39)

real   0m31.934s user   0m29.036s sys   0m0.047s dvk@localhost ~/tmp $ time sbcl --load test.lisp --eval "(quit)" This is SBCL 1.0.35.gentoo-r0, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. ; loading system definition from ; /usr/share/common-lisp/systems/asdf-binary-locations.asd into ; #<PACKAGE "ASDF0"> ; registering #<SYSTEM ASDF-BINARY-LOCATIONS {10031D0681}> as ; ASDF-BINARY-LOCATIONS

; in: LAMBDA NIL ; (SETQ R 0) ; ; caught WARNING: ; undefined variable: R ; ; compilation unit finished ; Undefined variable: ; R ; caught 1 WARNING condition 39 real   1m16.391s user   1m16.010s sys   0m0.176s [/code]

С минимальными изменениями, обеспечивающими корректность программы (r надо объявлять локальной переменной, это ж надо додуматься до использования UB в программе):

[code=bash] dvk@localhost ~/tmp $ time sbcl --load test2.lisp --eval "(quit)" This is SBCL 1.0.35.gentoo-r0, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. ; loading system definition from ; /usr/share/common-lisp/systems/asdf-binary-locations.asd into ; #<PACKAGE "ASDF0"> ; registering #<SYSTEM ASDF-BINARY-LOCATIONS {10031D0681}> as ; ASDF-BINARY-LOCATIONS 39 real   0m8.747s user   0m8.659s sys   0m0.060s [/code]

Теперь немного "подсластим" код: [code=bash] dvk@localhost ~/tmp $ time sbcl --load test3.lisp --eval "(quit)" This is SBCL 1.0.35.gentoo-r0, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. ; loading system definition from ; /usr/share/common-lisp/systems/asdf-binary-locations.asd into ; #<PACKAGE "ASDF0"> ; registering #<SYSTEM ASDF-BINARY-LOCATIONS {10031D0681}> as ; ASDF-BINARY-LOCATIONS 39 real   0m6.549s user   0m6.286s sys   0m0.061s [/code]

Дальше оптимизировать просто лень.

Файлы:

test2.lisp: [code=lisp] (defun test () (let ((r 0)) (dotimes (i 10000 r) (dotimes (j 10000 r) (setf r (mod (+ r (mod (* i j) 100)) 47)))) r)) (write (test)) [/code]

test3.lisp: [code=lisp] (defun test () (declare (optimize (speed 3) (debug 0) (safety 0))) (let ((r 0)) (declare (type fixnum r)) (dotimes (i 10000 r) (declare (type fixnum i)) (dotimes (j 10000 r) (declare (type fixnum j)) (setf r (mod (+ r (mod (* i j) 100)) 47)))) r)) (write (test)) [/code]

dmitry_vk ** (08.02.2010 23:16:43)
[#] Ответ на: комментарий от dmitry_vk 08.02.2010 23:16:43  

На моей машине (с теми же файлами, без изменений):

dvk@localhost ~/tmp $ time python test.py
('answer: ', 39)

real	0m31.934s
user	0m29.036s
sys	0m0.047s
dvk@localhost ~/tmp $ time sbcl --load test.lisp --eval "(quit)"
This is SBCL 1.0.35.gentoo-r0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
; loading system definition from
; /usr/share/common-lisp/systems/asdf-binary-locations.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM ASDF-BINARY-LOCATIONS {10031D0681}> as
; ASDF-BINARY-LOCATIONS

; in: LAMBDA NIL
;     (SETQ R 0)
; 
; caught WARNING:
;   undefined variable: R
; 
; compilation unit finished
;   Undefined variable:
;     R
;   caught 1 WARNING condition
39
real	1m16.391s
user	1m16.010s
sys	0m0.176s

С минимальными изменениями, обеспечивающими корректность программы (r надо объявлять локальной переменной, это ж надо додуматься до использования UB в программе):

dvk@localhost ~/tmp $ time sbcl --load test2.lisp --eval "(quit)"
This is SBCL 1.0.35.gentoo-r0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
; loading system definition from
; /usr/share/common-lisp/systems/asdf-binary-locations.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM ASDF-BINARY-LOCATIONS {10031D0681}> as
; ASDF-BINARY-LOCATIONS
39
real	0m8.747s
user	0m8.659s
sys	0m0.060s

Теперь немного "подсластим" код:

dvk@localhost ~/tmp $ time sbcl --load test3.lisp --eval "(quit)"
This is SBCL 1.0.35.gentoo-r0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
; loading system definition from
; /usr/share/common-lisp/systems/asdf-binary-locations.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM ASDF-BINARY-LOCATIONS {10031D0681}> as
; ASDF-BINARY-LOCATIONS
39
real	0m6.549s
user	0m6.286s
sys	0m0.061s

Дальше оптимизировать просто лень.

Файлы:

test2.lisp:

(defun test ()
  (let ((r 0))
    (dotimes (i 10000 r)
      (dotimes (j 10000 r) 
        (setf r (mod (+ r (mod (* i j) 100)) 47))))
    r)) 
 
(write (test)) 

test3.lisp:

(defun test ()
  (declare (optimize (speed 3) (debug 0) (safety 0)))
  (let ((r 0))
    (declare (type fixnum r))
    (dotimes (i 10000 r) 
      (declare (type fixnum i))
      (dotimes (j 10000 r) 
        (declare (type fixnum j))
        (setf r (mod (+ r (mod  (* i j) 100)) 47))))
    r)) 
 
(write (test)) 

dmitry_vk ** (08.02.2010 23:19:54)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:08:11  
yoghurt (фотография)

Ну и где тут С++?

yoghurt ***** (08.02.2010 23:20:32)
[#]  

заменить setq на let, или добавить перед функцией (defvar r 0),

и включить оптимизации (declaim (optimize (speed 3) (safety 0) (debug 0)))

(declaim (optimize (speed 3) (safety 0) (debug 0)))

(defvar r 0)

(defun test () 
  (setq r 0) 
  (dotimes (i 10000 r) 
    (dotimes (j 10000 r) 
      (setq r (mod (+ r (mod (* i j) 100)) 47)))))

(write (test))


time sbcl --script 1.lisp
39
real	0m3.824s
user	0m3.804s
sys	0m0.012s


time python -O 1.py 
('answer: ', 39)

real	0m32.951s
user	0m32.922s
sys	0m0.012s
anonymous (08.02.2010 23:22:22)
[#] Ответ на: комментарий от yoghurt 08.02.2010 23:20:32  

cout << , Ватсон, cout <<

anonymous (08.02.2010 23:23:10)
[#] Ответ на: комментарий от dmitry_vk 08.02.2010 23:19:54  

Да у тебя половину времени просто накладные расходы на запуск SBCL и компиляцию кода съели :) А если просто:

(time (test))
archimag ** (08.02.2010 23:24:48)
[#] Ответ на: комментарий от archimag 08.02.2010 23:15:46  
antony986 (фотография)

и не стыдно, а?


den@ira-desktop:~/work/test$ sbcl --noinform
* (compile-file "test.lsp" :output-file "testlsp")

; compiling file "/home/den/work/test/test.lsp" (written 08 FEB 2010 10:44:28 PM):
; compiling (DEFUN TEST ...)
; compiling (WRITE (TEST))
; file: /home/den/work/test/test.lsp
; in: DEFUN TEST
;     (SETQ R 0)
; 
; caught WARNING:
;   undefined variable: R
; 
; compilation unit finished
;   Undefined variable:
;     R
;   caught 1 WARNING condition


; /home/den/work/test/testlsp.fasl written
; compilation finished in 0:00:00.034
#P"/home/den/work/test/testlsp.fasl"
T
T
* den@ira-desktop:~/work/test$ chmod +x testlsp.fasl 
den@ira-desktop:~/work/test$ time ./testlsp.fasl
39
real	1m22.454s
user	1m22.161s
sys	0m0.140s
den@ira-desktop:~/work/test$ cat test.lsp 
(defun test ()
    (setq r 0)
    (dotimes (i 10000 r)
        (dotimes (j 10000 r)
            (setq r (mod (+ r (mod (* i j)100)) 47))
        )
    )
)

(write (test))

den@ira-desktop:~/work/test$
antony986 * (08.02.2010 23:24:54)
[#]  
korvin_ (фотография)
(defun test ()
  (declare (optimize (speed 3) (safety 0) (debug 0)))
  (let ((r 0))
    (dotimes (i 10000 r) 
      (dotimes (j 10000 r)
        (setq r (mod (+ r (mod (* i j) 100))
                     47))))))

(write (test))
[ ~/p/cl ] time sbcl < test.lisp
...
* 
TEST
* 39
39
* sbcl < test.lisp  4,02s user 0,08s system 78% cpu 5,218 total
[ ~/p/cl ] 
def test():
    r = 0
    for i in range(0, 10000):
        for j in range(0, 10000):
            r = (r + (i * j) % 100) % 47
    return r

r = test()

print("answer: ", r)
[ ~/p/python ] time python -O test.py
('answer: ', 39)
python -O test.py  19,03s user 0,03s system 99% cpu 19,112 total
[ ~/p/python ]

а теперь докажите, что пейтон не тормознутое УГ

=)

korvin_ ** (08.02.2010 23:26:50)
[#] Ответ на: комментарий от korvin_ 08.02.2010 23:26:50  

> а теперь докажите, что пейтон не тормознутое УГ
> =)


сишники и сипиписники улыбнулись краем губ

lester **** (08.02.2010 23:29:57)
[#] Ответ на: комментарий от dmitry_vk 08.02.2010 23:19:54  
korvin_ (фотография)
(defun test ()
  (declare (optimize (speed 3) (debug 0) (safety 0))) 
  (let ((r 0)) 
    (declare (type fixnum r)) 
    (dotimes (i 10000 r)  
      (declare (type fixnum i)) 
      (dotimes (j 10000 r)  
        (declare (type fixnum j)) 
        (setf r (mod (+ r (mod  (* i j) 100)) 47)))) 
    (the fixnum r)))
  
(write (time (test)))
[ ~/p/cl ] sbcl --script test.lisp 
Evaluation took:
  2.433 seconds of real time
  2.420000 seconds of total run time (2.420000 user, 0.000000 system)
  99.47% CPU
  6,501,758,898 processor cycles
  0 bytes consed
  
39%                                                                   [ ~/p/cl ] 
korvin_ ** (08.02.2010 23:30:23)
[#] Ответ на: комментарий от antony986 08.02.2010 23:24:54  
CL-USER> (defun test () 
           (declare (optimize (speed 3) (debug 0)))
           (let ((r 0))
             (declare (type fixnum r))
             (dotimes (i 10000 r)
               (dotimes (j 10000 r) 
                 (setf r (mod (+ r (mod (* i j) 100)) 47))))))
TEST
CL-USER> (time (test))
Evaluation took:
  5.396 seconds of real time
  5.180323 seconds of total run time (5.164322 user, 0.016001 system)
  96.00% CPU
  9,724,182,570 processor cycles
  261,968 bytes consed
  
39
$ time python test.py 
('answer: ', 39)

real	1m15.052s
user	1m7.164s
sys	0m0.464s
archimag ** (08.02.2010 23:30:42)
[#] Ответ на: комментарий от lester 08.02.2010 23:29:57  
korvin_ (фотография)

> сишники и сипиписники улыбнулись краем губ

рад, что заставил их улыбнуться, но мы же о питоне? =)

korvin_ ** (08.02.2010 23:31:14)
[#] Ответ на: комментарий от korvin_ 08.02.2010 23:26:50  

Смешно все эти Питоны с Лиспами. Для скорости вычислений лучше С и С++ ничего нет. Т

anonymous (08.02.2010 23:31:46)
[#] Ответ на: комментарий от lester 08.02.2010 23:29:57  

>сишники и сипиписники улыбнулись краем губ

Ха, а никто и не обещал волшебства

dmitry_vk ** (08.02.2010 23:31:57)
[#] Ответ на: комментарий от antony986 08.02.2010 23:24:54  
mv (фотография)

Читать умеешь? Писать-то не умеешь, мы уже поняли...

(defun test ()
  (let ((r 0))
    (dotimes (i 10000)
      (dotimes (j 10000)
        (declare ((unsigned-byte 29) r i j))
        (setq r (mod (+ r (mod (* i j) 100)) 47))))
    r))

(time (write (test)))
39
Evaluation took:
  2.716 seconds of real time
  2.711588 seconds of total run time (2.710588 user, 0.001000 system)
  99.85% CPU
  7,586,323,637 processor cycles
  0 bytes consed

Петон:

('answer: ', 39)

real    0m21.620s
user    0m21.086s
sys     0m0.017s

mv ***** (08.02.2010 23:32:15)
[#]  
yoghurt (фотография)
| r |
r := 0.
(Time millisecondsToRun: [    
    1 to: 10000 do: [:i |
        1 to: 10000 do: [:j |
            r := r + (((i * j) // 100) // 47) ]]]) displayNl.
r displayNl

Кто дождется - тот молодец

yoghurt ***** (08.02.2010 23:32:46)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:31:46  
korvin_ (фотография)

> Смешно все эти Питоны с Лиспами. Для скорости вычислений лучше С и С++ ничего нет. Т

Фортран, не?

korvin_ ** (08.02.2010 23:34:45)
[#]  

Вот за что люблю лисперов - за комплекс осажденной крепости^W^W^Wвсегдашнюю готовность пофлеймить.

tailgunner ***** (08.02.2010 23:39:16)
[#] Ответ на: комментарий от yoghurt 08.02.2010 23:32:46  
korvin_ (фотография)

> Кто дождется - тот молодец

как это запустить?

korvin_ ** (08.02.2010 23:41:13)
[#] Ответ на: комментарий от korvin_ 08.02.2010 23:26:50  
tia (фотография)

Давай на хаскеле! Олсо, на ди:

import std.stdio;
int test(){
 int r = 0;
 for(int i = 0; i< 10000; i++)
  for(int j = 0; j< 10000; j++)
   r = (r + (i * j) % 100) % 47;
 return r;
}

void main(){
 int r = test();
 writeln("answer: ", r);
}
iorlas@lastangel:~/tmp$ time ./dtestori 
answer: 39

real	0m3.436s
user	0m3.430s
sys	0m0.010s
iorlas@lastangel:~/tmp$ time python ./pytest.py
('answer: ', 39)

real	0m37.923s
user	0m37.900s
sys	0m0.030s
iorlas@lastangel:~/tmp$ time ./cpptesto3 
answer: 39

real	0m1.029s
user	0m1.020s
sys	0m0.000s
iorlas@lastangel:~/tmp$ time ./cpptest
answer: 39

real	0m1.908s
user	0m1.900s
sys	0m0.010s

tia * (08.02.2010 23:42:45)
[#] Ответ на: комментарий от tia 08.02.2010 23:42:45  
korvin_ (фотография)

> Давай на хаскеле!

я ж тебе уже писал, что не знаю хаскелла =)

korvin_ ** (08.02.2010 23:45:11)
[#] Ответ на: комментарий от archimag 08.02.2010 23:02:33  

>Не стал даже смотреть код, просто не используй clisp - это интерпретатор, используй нормальную компилирующую реализацию: SBCL или ClozureCL

Так и сравниваются два интерпретатора. Зачем сравнивать JIT с интерпретатором, тут понятно JIT быстрее будет. Если SBCL брать, то уж лучше с Java. Или уже если о Python, то хотябы под psyco.

anonymous (08.02.2010 23:48:42)
[#] Ответ на: комментарий от korvin_ 08.02.2010 23:45:11  
tia (фотография)

=/
Кто тогда напишет на хаскеле? =/

tia * (08.02.2010 23:52:10)
[#] Ответ на: комментарий от tia 08.02.2010 23:52:10  
korvin_ (фотография)

> Кто тогда напишет на хаскеле? =/

tailgunner видимо =)

korvin_ ** (08.02.2010 23:53:54)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:48:42  

> Так и сравниваются два интерпретатора. Зачем сравнивать JIT с
> интерпретатором, тут понятно JIT быстрее будет. Если SBCL брать,

> то уж лучше с Java. Или уже если о Python, то хотябы под psyco.


Сравнивать предложил не я. Но, скорость для лиспа долго была проблемой, уж слишком высокоуровневый. Над её решением долго работали, были разработаны эффективные схемы компиляции, которые и реализуются в ведущих реализациях. Собственно, вопрос о том, как сделать быстрый интерпретатор лиспа никого не интересует уже лет тридцать, все работают над компиляторами. Поэтому, вообще исследовать производительность интерпретаторов лиспа - это просто отвергать последние 30 лет его развития.

archimag ** (08.02.2010 23:53:59)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:48:42  
korvin_ (фотография)

> Или уже если о Python, то хотябы под psyco.

так в чем проблема-то? претензии к ТС =)

korvin_ ** (08.02.2010 23:54:32)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:48:42  
Love5an (фотография)

SBCL не JIT
Это компилятор в нейтив.
JIT можно как раз в clisp, емнип

Love5an (08.02.2010 23:58:38)
[#] Ответ на: комментарий от archimag 08.02.2010 23:53:59  

>Сравнивать предложил не я.

Предложили сравнивать интерпретаторы, а ты решил перевести спор на JIT vs интерпретатор. Что, по-моему, некорректно с технической стороны.

>Собственно, вопрос о том, как сделать быстрый интерпретатор лиспа никого не интересует уже лет тридцать, все работают над компиляторами.


Ты хочешь сказать интерпретаторы LISP уже никому не нужны? Я, помнится, так и не смог собрать SBCL под ARM (у кого-ть, кстати, это получилось?). А тот же clisp там прекрасно работает.

anonymous (08.02.2010 23:58:49)
[#] Ответ на: комментарий от Love5an 08.02.2010 23:58:38  

>SBCL не JIT. Это компилятор в нейтив.

Тем более.

anonymous (08.02.2010 23:59:48)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:58:49  
mv (фотография)

> Я, помнится, так и не смог собрать SBCL под ARM (у кого-ть, кстати, это получилось?)

У кого-ть получилось прочитать документацию, в которой сказано, что в SBCL ARM не поддерживается.

mv ***** (09.02.2010 0:00:34)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:58:49  
korvin_ (фотография)

> Предложили сравнивать интерпретаторы, а ты решил перевести спор на JIT vs интерпретатор. Что, по-моему, некорректно с технической стороны.

в топике ни слова о том, что сравнивается, только Python и Lisp

korvin_ ** (09.02.2010 0:00:40)
[#] Ответ на: комментарий от tailgunner 08.02.2010 23:39:16  
tia (фотография)

Да да да. Есть такое. Смешные клоуны говноеды, простите :)

tia * (09.02.2010 0:00:42)
[#] Ответ на: комментарий от archimag 08.02.2010 23:53:59  

Собственно, если использовать не только разработки "былых времен", но и новые техники компиляции, то тот же SBCL можно ускорить, так как генерирует он не самый лучший код.

>Ты хочешь сказать интерпретаторы LISP уже никому не нужны? Я, помнится, так и не смог собрать SBCL под ARM (у кого-ть, кстати, это получилось?).

Это проблема не компиляторов вообще, а проблема SBCL.

dmitry_vk ** (09.02.2010 0:02:07)
[#] Ответ на: комментарий от tia 09.02.2010 0:00:42  
mv (фотография)

Когда мне грустно, я читаю твои комментарии, и сразу настроение поднимается. Спасибо!

mv ***** (09.02.2010 0:04:54)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:58:49  

> Предложили сравнивать интерпретаторы

Нет, было предложено доказать

>>-----Цитата---->>

что лисп не тормознутое УГ

<<-----Цитата----<<

Что и было успешно показано

> а ты решил перевести спор на JIT vs интерпретатор

Какой ещё JIT? Никакого JIT в SBCL нет. А так см. выше.

> Ты хочешь сказать интерпретаторы LISP уже никому не нужны?

Только если поиграться. Да и то. В clisp даже основные пакеты ещё попробуй загрузить. Так что, о серьёзном использовании лучше не говорить.

archimag ** (09.02.2010 0:06:36)
[#] Ответ на: комментарий от anonymous 08.02.2010 23:31:46  

> Для скорости вычислений лучше С и С++ ничего нет.

Да ладно, Фортран рвет их как забаненный тузик грелку.

anonymous (09.02.2010 0:06:39)
[#] Ответ на: комментарий от mv 09.02.2010 0:00:34  

>У кого-ть получилось прочитать документацию, в которой сказано, что в SBCL ARM не поддерживается.

http://www.lisphacker.com/projects/sbcl-arm/port-log.txt

anonymous (09.02.2010 0:07:04)
[#] Ответ на: комментарий от korvin_ 08.02.2010 23:41:13  
yoghurt (фотография)

Лучше вообще не запускать :) Как оказалось, в Smalltalk (по крайней мере, в GNU-реализации) как-то нестандартно считаются остатки от деления. Когда профикшу, выложу опять

yoghurt ***** (09.02.2010 0:15:16)
[#] Ответ на: комментарий от archimag 08.02.2010 23:02:33  
Zubok (фотография)

>Не стал даже смотреть код, просто не используй clisp - это интерпретатор, используй нормальную компилирующую реализацию: SBCL или ClozureCL

Харе гнать на CLISP! :) Хорошая реализация, и я ей доволен. Маленький футпринт, быстрый старт, хорошая межплатформенная переносимость, скромные потребности в памяти. Компиляторы далеко не для всех задач требуются.

Zubok ***** (09.02.2010 0:16:49)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru