On 8987 day of my life Alex Mizrahi wrote:
> Hello, All!
>
> i thought this might be interesting/useful to somebody..
>
> i've done small/simple compiler of somthing lisp-like into .NET ilasm.
> compiler generates ilasm ".il" files, that could be compiled with ilasm
> utility into executable file and executed.
URL?
I am planning to start CL-for-.NET project.
--
Ivan Boldyrev
Your bytes are bitten.
(message (Hello 'Ivan)
(you :wrote :to '("Alex Mizrahi") :on '(Fri, 14 Jan 2005 17:24:26 +0600))
(
??>> i thought this might be interesting/useful to somebody..
??>>
??>> i've done small/simple compiler of somthing lisp-like into .NET ilasm.
??>> compiler generates ilasm ".il" files, that could be compiled with
??>> ilasm utility into executable file and executed.
IB> URL?
full source was included in that message below, but if you prefer urls, here
is one:
http://indirect3d.sf.net/dotNet1.lisp
8-]
IB> I am planning to start CL-for-.NET project.
you mean CL implementation for .NET platform?
i planned to start doing something like that too, so maybe we can cooperate
to be more efficient? ;-]
actually i don't really want to focus on doing full CL (although it may be
quite useful thing to run any standard-compilant CL application, and, for
example, integrate it in a web-page using ASP.NET technology), but do some
experiments like:
--intentional programming (source should not be a text, or at least it
should be possible to add any meta-information at any point, transparently
for user)
--intelligent IDE - it should programmer much more than text editor with a
couple of scripts, it should be able to manipulate a program, not it's
source code. for example, one of nice features it could have - source
control (like CVS) on language-level, like versions or defuns, or even their
parts. and refactoring that works on source level - if you're going to
rename some global function, it should work only on function ignoring places
where it's used as a value, and it should ignore places where it's shadowed
by flet.
--automatic type solving - wherever possible, it should automatically deduce
types from context, and at least suggest to user that types to automatically
fill type declarations.
--profile-based type solving - compiler can generate code that collects info
about types being used, then it can present that information to user to
semi-automatically fill type declarations.
--profile-based optimizations
--intelligent DSL (domain-specific language) debugging - some meta-commands
to debugger, so DSLs can be debugged at source level, or deeper, if needed.
for example, i don't really want to see stuff like
(NIL #<function SPECIAL::EVAL-PROGN 200FD5CA> ((BLOCK #:NIL (TAGBODY
#:|begin-loop-558| # # # #:|end-loop-559| #))))
in backtrace when i debug (loop for i in '(1 2 3) do (+ i nil)), unless i'm
debugging loop macro.
it get's even worse with stuff like
(let ((il '(1 . 1)) (jl '(1 1))) (loop for i in il for j in jl collect (list
i j)))
backtrace is not very informative to tell that problems are with il..
simple solution is to make something like
(WITH-DSL-CONTEXT '(FOR I IN IL)
(WHEN (OR (ENDP #:|tail-538|)) (GO #:|end-loop-535|)))
so debugger can just report contexts like - error in "for i in il" in that
"loop" when appropriate debug level is set, but maybe there's something
better..
by the way, i'd like to look at you TypeL, but lispnik.newmail.ru isn't
responding. couldn't you place it in other place?
)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
(prin1 "People, who lust for the Feel of keys on their fingertips (c)
Inity"))
On 8990 day of my life Alex Mizrahi wrote:
> ??>> i've done small/simple compiler of somthing lisp-like into .NET ilasm.
>
> IB> URL?
>
> full source was included in that message below...
Oops :))) I haven't read rest of message attentively.
> IB> I am planning to start CL-for-.NET project.
>
> you mean CL implementation for .NET platform?
Yep.
> i planned to start doing something like that too, so maybe we can cooperate
> to be more efficient? ;-]
Sure. Especially because we have no language barrier :)
> actually i don't really want to focus on doing full CL (although it may be
> quite useful thing to run any standard-compilant CL application, and, for
> example, integrate it in a web-page using ASP.NET technology), but do some
> experiments like:
>
> --intentional programming
> --intelligent IDE
It is not very interesting for me.
There are two possibilities: we develop two systems that share a lot
(Lisp IL assembler which do not use ilasm, optimizer and so on); or we
develop one project but each focus on different areas.
> --automatic type solving - wherever possible, it should automatically deduce
> types from context, and at least suggest to user that types to automatically
> fill type declarations.
Yep, it is interesting for me too. "Turtles are greatest fans of
speed" :)
Priorities:
1. ANSI compliance.
2. Speed.
3. MOP.
4. Lot of libraries :)
Perhaps, McCLIM will run someday with .NET backend :)
Yep, this is a very ambitious project. :)
> --intelligent DSL (domain-specific language) debugging - some meta-commands
> to debugger, so DSLs can be debugged at source level
Perhaps, it can be achieved with Scheme-like macro system (don't
remember exactly, which of two :)
> by the way, i'd like to look at you TypeL, but lispnik.newmail.ru isn't
> responding. couldn't you place it in other place?
Yep, Newmail.RU hosting sux, but other free hostings sux even more :(
May be, I will move it to common-lisp.net someday.
TypeL distro is small: 23Kb. I can send you the file if you give me
appropriate mail address. You can contact me with my e-mail in From
field.
--
Ivan Boldyrev
Outlook has performed an illegal operation and will be shut down.
If the problem persists, contact the program vendor.