unycorn / lolcode-dot-net

Automatically exported from code.google.com/p/lolcode-dot-net
0 stars 0 forks source link

Library "STDIO" not found. Compile/Set up Error #14

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
I'm sure that this is a noob linking/environment error. Can anyone tell me 
the proper way to configure my environment or set up my lolc.exe to 
include this library? 

When I try to compile fulltest.lol with this:
lolc fulltest.lol

I get this out put:

  fulltest.lol(3,16) : error : Library "STDIO" not found.
  fulltest.lol(4,11) : error 1: ident expected
  Failed to compile.

I'm using VS2008 to edit my lol files on a Vista machine. 
Thanks.

Original issue reported on code.google.com by calebjen...@gmail.com on 17 Jan 2008 at 4:45

GoogleCodeExporter commented 8 years ago
I had the same issue, I fixed it (or worked around it) by not compiling the 
fulltest.lol but just the test.lol file thats in the source (not the binary) 
download.

Original comment by ErayTarr...@gmail.com on 9 Mar 2008 at 2:10

GoogleCodeExporter commented 8 years ago
Yes. test.lol works great, I hadn't tried that by it self.... (now to track 
down the 
breaking code in fulltest.lol) Thanks!

Original comment by calebjen...@gmail.com on 11 Mar 2008 at 7:54

GoogleCodeExporter commented 8 years ago
I'm guessing since we're talking .NET here this should probably be removed or
rewritten for System.IO . I think the original examples for LOLCode it was 
shown as a
way of importing modules, STDIO for showing C/C++. 

After digging around the code quite a bit I figured out whats going on here.
LOLCode.net will loop through the assemblies that are passed into lolc.exe 
through
the /r /reference argument
/reference:<string>  Reference metadata from the specified assembly files
                     (Short form: /r) (short form /r)

It will then take the <Module> from the CAN HAS and see if it is a Type in any
assemblies loaded. After that it takes any public static methods on that type 
and
registers them as an LOLCodeFunction. Effectively making them global functions 
(since
LOLCode is not object oriented).

So essentially for CAN HAS STDIO to work we need to have an assembly passed 
into the
compiler that contains the class STDIO that has public static methods we wish to
call. So we would need STDIO.dll that includes something like
public static class STDIO
{
 public static string (string filepath)
 {
  return System.IO.File.ReadAllText(filepath);
 }
}

That raise the other question of importing existing .NET libraries. Alas it 
looks
like doing that would require some rework. I would say using
Assembly.GetAssembly(Type type) for this. So we can do "CAN HAS System.IO.File" 
.
Though this would probably break the  LOLCode spec since some of those 
functions do
require objects/enums and the use of Types (objects) in LOLCode is under review.

Now for the second import, CAN HAS "File.lol" this will not work with the 
current
code at all. The 1.2 spec says "Consider require or include for parallels". So 
I'm
guessing this would then need to be imported into the currently parsed LOLCode 
at
that point and be parsed itself.

Original comment by tagna...@gmail.com on 15 Jul 2008 at 2:42

GoogleCodeExporter commented 8 years ago
hi everyone.

i've got the same problem over here.
'Library "STDIO" not found.'

I've read all of your comments and searched for test.lol .. but there's no such 
file.
I created own files. but everytime the same stupid mistake.

the problem may be that i haven't installed svn.. never used this on windows.. 
so i can't check out the sources.

could anyone pls help me?
i need to  talk about lolcode very soon in some of my readings at university.. 
and i 
think it's not good talking about a language without having a working compiler.

Original comment by leneli...@googlemail.com on 4 Apr 2009 at 8:19