| (no subject) |
[Nov. 26th, 2009|12:00 am] |
Написал TODO для своей библиотеки. Пока что небольшое, но вообще там должно быть больше пунктов, конечно.
* Fix d3d10effect.lisp - effect matrix variables
should be of arbitrary size, not just 4x4.
* Make more use of %get-value-into and %read-value-into.
* Rewrite memory accessor code generators. At the time they look crappy.
* Compile and load speed is VERY SLOW at the moment, especially on clisp.
Fix it, if possible. |
|
|
| (no subject) |
[Nov. 24th, 2009|12:01 pm] |
|
У меня складывается впечатление, что хаскелистов совершенно не волнует практическая пригодность чего-либо, не волнует сложность, или наоборот, легкость реализации чего-либо на каком-то языке, не волнует удобство использования чего-либо, их волнует только что "хаскель лучше всех". |
|
|
| гы |
[Nov. 18th, 2009|02:41 pm] |
 |
|
|
| (no subject) |
[Nov. 17th, 2009|04:46 pm] |
людей, которые на c++(именно c++, не си) пишут "системный" код, в детстве много били по голове, помоему |
|
|
| (no subject) |
[Nov. 15th, 2009|01:15 pm] |
Все, кто предлагает что-либо, особенно какие-либо психоактивные вещества, запретить, и, тем более, запрещает - гнойные пидарасы, лицемеры, ханжи, и, в случае с веществами, пособники наркомафии. А все, кто их поддерживает - необразованные селюки и/или моральные бляди. |
|
|
| (no subject) |
[Nov. 13th, 2009|10:46 am] |
Много раз слышал что современные статические системы типов при всей крутости не могут поймать, например, ошибку-деление-на-ноль во время компиляции.
Это довольно прикольно, потому что типизация CL, которая динамическая, отловить ее при компиляции в теории может.
(declaim (inline %ratio))
(defstruct (%ratio (:constructor %ratio (x y)))
(x 1 :type integer)
(y 2 :type (and integer (not (eql 0)))))
(defun test (x)
(%ratio x 0))
; compiling (DECLAIM (INLINE %RATIO))
; compiling (DEFSTRUCT (%RATIO #) ...)
; compiling (DEFUN TEST ...)
; file: D:\SBCL\test.lisp
; in: DEFUN TEST
; (%RATIO X 0)
;
; note: deleting unreachable code
; --> BLOCK SB-KERNEL::%MAKE-STRUCTURE-INSTANCE-MACRO TRULY-THE
; --> SB-KERNEL:%MAKE-STRUCTURE-INSTANCE
; ==>
; X
;
; note: deleting unreachable code
;
; note: deleting unreachable code
;
; caught WARNING:
; Asserted type (OR (INTEGER * -1) (INTEGER 1)) conflicts with derived type
; (VALUES (INTEGER 0 0) &OPTIONAL).
; See also:
; The SBCL Manual, Node "Handling of Types"
;
; compilation unit finished
; caught 1 WARNING condition
; printed 3 notes |
|
|
| (no subject) |
[Nov. 12th, 2009|08:50 pm] |
Все-таки, Clozure CL далеко не такой крутой компилятор, как SBCL. Разница, наглядно:
(defun test (v out n)
(declare (type fixnum n)
(type vector3 v out)
(optimize (speed 3) (space 0) (safety 0) (debug 0)))
(dotimes (i n) (vec3-add v out out)))
CCL:
;;; (defun test (v out n) (declare (type fixnum n) (type vector3 v out) (optimize (speed 3) (space 0) (s
[0] (recover-fn)
[5] (movl (% ebp) (@ 8 (% esp)))
[9] (leal (@ 8 (% esp)) (% ebp))
[13] (popl (@ 4 (% ebp)))
[16] (pushl (% arg_y))
[17] (pushl (% arg_z))
;;; (dotimes (i n) (vec3-add v out out))
[18] (pushl ($ 0))
[20] (jmpl L728)
;;; (vec3-add v out out)
L25
( ~160 строчек )
;;; (dotimes (i n) (vec3-add v out out))
[719] (movl (@ -16 (% ebp)) (% arg_z))
[722] (addl ($ 4) (% arg_z))
[725] (movl (% arg_z) (@ -16 (% ebp)))
L728
[728] (movl (@ -16 (% ebp)) (% arg_y))
[731] (movl (@ -12 (% ebp)) (% arg_z))
[734] (cmpl (% arg_z) (% arg_y))
[736] (jl L25)
[742] (movl ($ 77825) (% arg_z))
[747] (leavel)
[748] (retl)
В SBCL, тот же код:
; disassembly for TEST
; 24C56BBA: 31C0 XOR EAX, EAX ; no-arg-parsing entry point
; BBC: EB39 JMP L1
; BBE: L0: DDD8 FSTPD FR0
; BC0: D94201 FLD [EDX+1]
; BC3: DDD9 FSTPD FR1
; BC5: D94701 FLD [EDI+1]
; BC8: D9C9 FXCH FR1
; BCA: D8C1 FADDD FR1
; BCC: 9B WAIT
; BCD: D95701 FST [EDI+1]
; BD0: DDD8 FSTPD FR0
; BD2: D94205 FLD [EDX+5]
; BD5: DDD9 FSTPD FR1
; BD7: D94705 FLD [EDI+5]
; BDA: D9C9 FXCH FR1
; BDC: D8C1 FADDD FR1
; BDE: 9B WAIT
; BDF: D95705 FST [EDI+5]
; BE2: DDD8 FSTPD FR0
; BE4: D94209 FLD [EDX+9]
; BE7: DDD9 FSTPD FR1
; BE9: D94709 FLD [EDI+9]
; BEC: D9C9 FXCH FR1
; BEE: D8C1 FADDD FR1
; BF0: 9B WAIT
; BF1: D95709 FST [EDI+9]
; BF4: 83C004 ADD EAX, 4
; BF7: L1: 39F0 CMP EAX, ESI
; BF9: 7CC3 JL L0
; BFB: BA0B001022 MOV EDX, 571473931
; C00: 8BE5 MOV ESP, EBP
; C02: F8 CLC
; C03: 5D POP EBP
; C04: C3 RET
Разница в скорости выполнения понятна, соответственно, какая. Когда же последний, наконец, под винду допилят? |
|
|
| (no subject) |
[Nov. 7th, 2009|06:55 pm] |
А никто случайно не знает как обойти вот это вот ограничение в MSVC++ (9.0) ?
 А то из-за него ECL собранный из под оного не хочет компилировать мою библиотеку, например. И не только мою - например еще cl-unicode. |
|
|
| (no subject) |
[Oct. 30th, 2009|07:51 pm] |
Не курю уже больше двух недель. Это заебись.
Говорят, за 3 недели выходят все метаболиты никотина. А через 2-12 недель полностью восстанавливается обмен нейромедиаторов. |
|
|
| (no subject) |
[Oct. 28th, 2009|09:04 pm] |
Линукс это тоже ведь Worse Is Better Винда гораздо меньше оно самое |
|
|
| (no subject) |
[Oct. 28th, 2009|08:53 pm] |
Я понял таки наконец, чем мне не нравится Python, Ruby и разная "скриптота". А также, многие наследники сишки.
Потому что это классический Worse Is Better, прямо по Гэбриелу http://dreamsongs.com/WIB.html |
|
|
| (no subject) |
[Oct. 27th, 2009|07:45 pm] |
Результаты 1 - 10 из примерно 41 400 для "syntactic abstraction". (0,27 секунд) Результаты 1 - 10 из примерно 42 для "синтаксическая абстракция". (0,22 секунд) |
|
|
| (no subject) |
[Oct. 27th, 2009|12:34 pm] |
Си, и, тем более, C++ - все-таки невероятно уебищные языки. Сет примитивных операторов - убог(я не говорю, чтобы там что-то вроде handler-bind или unwind-protect было, но хотя бы break с меткой блока) Синтаксис - дерьмовый, порождающий кучу неоднозначностей(хотя, конечно, лучше, чем в хаскеле). Массивы заранее неопределенного размера на стеке в сях ввели только в последнем стандарте, и только в сях и то, в плюсах многомерных даже массивов нет, по факту. Ну и вот например: http://www.linux.org.ru/view-message.jsp?msgid=4174311&lastmod=1256632564069 т.е. даже такого примитивнейшего вывода типов нет, максимум можно только type a[] = {...}; |
|
|
| (no subject) |
[Oct. 27th, 2009|12:13 pm] |
|
/c/ захватили дебилы |
|
|
| (no subject) |
[Oct. 24th, 2009|10:14 am] |
|
но не про че особо писать больше, на самом деле |
|
|
| (no subject) |
[Oct. 24th, 2009|08:06 am] |
Я вот, наверное, никогда не пойму, почему хаскелисты и прочие "функциональщики" в упор не понимают, что лисп, особенно CL, это дичайше декларативный язык, потому как метаязык, что в нормальном среднестатистическом файле .lisp 90% форм - либо макросы, либо какие-нибудь навороты с clos, что выглядит это куда более декларативно, чем хаскель помноженный на все остальные ml'и, называют его очень императивным и сравнивают с алголом(!!), а у самих код из одних do. |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
| |
|
|