Most of my time today has been spent on writing Apocrypha 1, "Overview of the Pugs project". As I plan to write it as Catechism (i.e. Q&A format), I solicited #perl6 for questions. Here is a list of unsorted questions I compiled:
I need more questions of all sorts, so you can help. Please leave a comment here that contain any number of questions that you'd like to see answered. Thanks! :-)
...now, to the journal itself...
Today #perl6 is busy resolving edge cases and inconsistencies in the typing system. I'm truly happy that my two outstanding question on p6l (IType vs VType and Context paradox in multisub dispatching) has met with suitable solutions.
Of particular importance is that, with help from luqui (Luke Palmer), pmichaud (Patrick Michaud) and lathos (Simon Cozens), we have got the to bottom of the "punning" problem of ambiguous of "Array" as a implementation type, and "Array" as a value type. The solution in Pugs is simply to excise all implementation types, except for "Variable" and "Constant". We will see more of implementation types when we get to the Tieable class.
Also of note is that the Parser will begin to do typechecking and inferencing, and ill-typed multisub dispatches will be caught at compile time, instead of delaying until runtime paradox appears.
On the code front, hcchien and juerd continue adding new tests and removing TODO tags from tests that now works, while ycheng implemented unlink(). I've implemented defined() and undef() (both nullary and unary variants) at Juerd's request, and ref() at Steve_p's.
Oh! And I'm happy that http://dev.perl.org/perl6 links to http://pugscode.org now. Wonderful. :)
Re:pugs (ghc actually) build error under cygwin
jeff on 2005-02-22T09:11:41
to be a bit more clear, the error of not finding 'package unix' happened after alot of apparently succesful building took place. and it happened on a huge ghc call, i presume it is a linking step.here is the huge command line that caused the error, for whatever it may be worth :
/usr/local/bin/ghc -M -optdep-f -optdep.depend-BASE -osuf o -I../includes -H16m -O -iutils -ibasicTypes -itypes -ihsSyn -iprelude -irename -itypecheck -ideSu gar -icoreSyn -ispecialise -isimplCore -istranal -istgSyn -isimplStg -icodeGen -iabsCSyn -imain -iprofiling -iparser -icprAnalysis -icompMan -indpFlatten -icbit s -inativeGen -ighci -DGHCI -package haskell-src -package unix -cpp -fglasgow-exts -Rghc-timing -I. -IcodeGen -InativeGen -Iparser -recomp -Rghc-timing -H16M '- #include "hschooks.h"' absCSyn/AbsCSyn.lhs absCSyn/AbsCUtils.lhs absCSyn/CLabel.lhs absCSyn/CStrings.lhs absCSyn/Costs.lhs absCSyn/MachOp.hs absCSyn/PprAbsC.lhs basicTypes/BasicTypes.lhs basicTypes/DataCon.lhs basicTypes/Demand.lhs basicTypes/FieldLabel.lhs basicTypes/Id.lhs basicTypes/IdInfo.lhs basicTypes/Literal.lhs basicTypes/MkId.lhs basicTypes/Module.lhs basicTypes/Name.lhs basicTypes/NameEnv.lhs basicTypes/NameSet.lhs basicTypes/NewDemand.lhs basicTypes/OccName.lhs bas icTypes/RdrName.lhs basicTypes/SrcLoc.lhs basicTypes/UniqSupply.lhs basicTypes/Unique.lhs basicTypes/Var.lhs basicTypes/VarEnv.lhs basicTypes/VarSet.lhs codeGen /Bitmap.hs codeGen/CgBindery.lhs codeGen/CgCase.lhs codeGen/CgClosure.lhs codeGen/CgCon.lhs codeGen/CgConTbls.lhs codeGen/CgExpr.lhs codeGen/CgHeapery.lhs codeG en/CgLetNoEscape.lhs codeGen/CgMonad.lhs codeGen/CgRetConv.lhs codeGen/CgStackery.lhs codeGen/CgTailCall.lhs codeGen/CgUpdate.lhs codeGen/CgUsages.lhs codeGen/C losureInfo.lhs codeGen/CodeGen.lhs codeGen/SMRep.lhs compMan/CompManager.lhs coreSyn/CoreFVs.lhs coreSyn/CoreLint.lhs coreSyn/CorePrep.lhs coreSyn/CoreSyn.lhs c oreSyn/CoreTidy.lhs coreSyn/CoreUnfold.lhs coreSyn/CoreUtils.lhs coreSyn/ExternalCore.lhs coreSyn/MkExternalCore.lhs coreSyn/PprCore.lhs coreSyn/PprExternalCore .lhs coreSyn/Subst.lhs cprAnalysis/CprAnalyse.lhs deSugar/Check.lhs deSugar/Desugar.lhs deSugar/DsArrows.lhs deSugar/DsBinds.lhs deSugar/DsCCall.lhs deSugar/DsE xpr.lhs deSugar/DsForeign.lhs deSugar/DsGRHSs.lhs deSugar/DsListComp.lhs deSugar/DsMeta.hs deSugar/DsMonad.lhs deSugar/DsUtils.lhs deSugar/Match.lhs deSugar/Mat chCon.lhs deSugar/MatchLit.lhs ghci/ByteCodeAsm.lhs ghci/ByteCodeFFI.lhs ghci/ByteCodeGen.lhs ghci/ByteCodeInstr.lhs ghci/ByteCodeItbls.lhs ghci/ByteCodeLink.lh s ghci/InteractiveUI.hs ghci/Linker.lhs ghci/ObjLink.lhs hsSyn/Convert.lhs hsSyn/HsBinds.lhs hsSyn/HsCore.lhs hsSyn/HsDecls.lhs hsSyn/HsExpr.lhs hsSyn/HsImpExp. lhs hsSyn/HsLit.lhs hsSyn/HsPat.lhs hsSyn/HsSyn.lhs hsSyn/HsTypes.lhs main/BinIface.hs main/CmdLineOpts.lhs main/CodeOutput.lhs main/Config.hs main/Constants.lh s main/DriverFlags.hs main/DriverMkDepend.hs main/DriverPhases.hs main/DriverPipeline.hs main/DriverState.hs main/DriverUtil.hs main/ErrUtils.lhs main/Finder.lh s main/GetImports.hs main/HscMain.lhs main/HscStats.lhs main/HscTypes.lhs main/Interpreter.hs main/Main.hs main/MkIface.lhs main/Packages.lhs main/ParsePkgConf. hs main/SysTools.lhs main/TidyPgm.lhs nativeGen/AbsCStixGen.lhs nativeGen/AsmCodeGen.lhs nativeGen/AsmRegAlloc.lhs nativeGen/MachCode.lhs nativeGen/MachMisc.lhs nativeGen/MachRegs.lhs nativeGen/PprMach.lhs nativeGen/RegAllocInfo.lhs nativeGen/Stix.lhs nativeGen/StixMacro.lhs nativeGen/StixPrim.lhs ndpFlatten/FlattenInf o.hs ndpFlatten/FlattenMonad.hs ndpFlatten/Flattening.hs ndpFlatten/NDPCoreUtils.hs ndpFlatten/PArrAnal.hs parser/Ctype.lhs parser/LexCore.hs parser/Lexer.hs pa rser/Parser.hs parser/ParserCore.hs parser/ParserCoreUtils.hs parser/RdrHsSyn.lhs prelude/ForeignCall.lhs prelude/PrelInfo.lhs prelude/PrelNames.lhs prelude/Pre lRules.lhs prelude/PrimOp.lhs prelude/PrimRep.lhs prelude/TysPrim.lhs prelude/TysWiredIn.lhs profiling/CostCentre.lhs profiling/SCCfinal.lhs rename/RnBinds.lhs rename/RnEnv.lhs rename/RnExpr.lhs rename/RnHiFiles.lhs rename/RnHsSyn.lhs rename/RnIfaces.lhs rename/RnNames.lhs rename/RnSource.lhs rename/RnTypes.lhs simplCo re/CSE.lhs simplCore/FloatIn.lhs simplCore/FloatOut.lhs simplCore/LiberateCase.lhs simplCore/OccurAnal.lhs simplCore/SAT.lhs simplCore/SATMonad.lhs simplCore/Se tLevels.lhs simplCore/SimplCore.lhs simplCore/SimplMonad.lhs simplCore/SimplUtils.lhs simplCore/Simplify.lhs simplStg/SRT.lhs simplStg/SimplStg.lhs simplStg/Stg Stats.lhs specialise/Rules.lhs specialise/SpecConstr.lhs specialise/Specialise.lhs stgSyn/CoreToStg.lhs stgSyn/StgLint.lhs stgSyn/StgSyn.lhs stranal/DmdAnal.lhs stranal/SaAbsInt.lhs stranal/SaLib.lhs stranal/StrictAnal.lhs stranal/WorkWrap.lhs stranal/WwLib.lhs typecheck/Inst.lhs typecheck/TcArrows.lhs typecheck/TcBind s.lhs typecheck/TcClassDcl.lhs typecheck/TcDefaults.lhs typecheck/TcDeriv.lhs typecheck/TcEnv.lhs typecheck/TcExpr.lhs typecheck/TcForeign.lhs typecheck/TcGenDe riv.lhs typecheck/TcHsSyn.lhs typecheck/TcIfaceSig.lhs typecheck/TcInstDcls.lhs typecheck/TcMType.lhs typecheck/TcMatches.lhs typecheck/TcMonoType.lhs typecheck /TcPat.lhs typecheck/TcRnDriver.lhs typecheck/TcRnMonad.lhs typecheck/TcRnTypes.lhs typecheck/TcRules.lhs typecheck/TcSimplify.lhs typecheck/TcSplice.lhs typech eck/TcTyClsDecls.lhs typecheck/TcTyDecls.lhs typecheck/TcType.lhs typecheck/TcUnify.lhs types/Class.lhs types/FunDeps.lhs types/Generics.lhs types/InstEnv.lhs t ypes/PprType.lhs types/TyCon.lhs types/Type.lhs types/TypeRep.lhs types/Variance.lhs utils/Bag.lhs utils/Binary.hs utils/BitSet.lhs utils/Digraph.lhs utils/Fast MutInt.lhs utils/FastString.lhs utils/FastTypes.lhs utils/FiniteMap.lhs utils/ListSetOps.lhs utils/Maybes.lhs utils/OrdList.lhs utils/Outputable.lhs utils/Panic .lhs utils/Pretty.lhs utils/PrimPacked.lhs utils/StringBuffer.lhs utils/UnicodeUtil.lhs utils/UniqFM.lhs utils/UniqSet.lhs utils/Util.lhs ghc.exe: unknown package name: unix
make[2]: *** [depend] Error 1
make[1]: *** [boot] Error 1
make[1]: Leaving directory `/home/jeff/ghc-source/ghc-6.2.2/ghc'
make: *** [build] Error 1Re:pugs (ghc actually) build error under cygwin
autrijus on 2005-02-22T10:14:30
- Do not build GHC from the source. Use the binary.
:) - Do not run ghc by yourself; use "perl Makefile.PL ; nmake" instead, as detailed in README.
Thanks,
/Autrijus/ Re:pugs (ghc actually) build error under cygwin
jeff on 2005-02-23T06:09:42
ahhh, the light clicks on.... don't use cygwin !
i wasn't familiar with 'nmake' and so had glossed over the larger meaning of the comment...
from a quick google of nmake it appears it is distributed with devstudio... unfortunately i don't microsoft development tools installed.
does anyone know if this is freely available or if there is a freely available substitute or alternative ?
(i'll dig in deeper to this soon -- thanks for the clarification... )Re:pugs (ghc actually) build error under cygwin
jeff on 2005-02-23T06:26:45
ok, it seems a free nmake is available for download from this microsoft support article :
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q132084
perhaps that info could land in the FAQ ? (assuming its the best way to grab nmake...)Re:pugs (ghc actually) build error under cygwin
autrijus on 2005-02-24T03:03:03
"perl Makefile.PL" downloads nmake.exe for you.:) Re:pugs (ghc actually) build error under cygwin
jeff on 2005-02-24T07:15:54
thanks for the nugget!
i'm laughing as i write this. i think i need to leap before i look in this case (before thinking about leaping before looking...)
jeffRe:pugs (ghc actually) build error under cygwin
nicholas on 2005-02-22T11:26:57
perl.perl6.compiler but google complained of 'temporary error' and i lost the post.Don't post to google groups. The perl "groups" there are only mirrors of the lists, the lists don't accept incoming posts from google, and so anything posted there is effectively lost. Just send mail to perl6-compiler@perl.org, it will get moderator approval and soon be on the list.
The information about not posting to google groups is repeated fairly regularly on the Perl 6 list summary - I'm not sure how else it can be made more prominient, as it seems that google have no reason to provide a means to disable posting on a per group basis.
Re:pugs (ghc actually) build error under cygwin
jeff on 2005-02-24T07:25:19
thanks for this info. the back of my brain did vaguely itch that i had read something of this somewhere before as i attempted the google post...
in terms of 'how else it can be made more prominent'... i suggest a FAQ as a good start.
perhaps the PUGS faq would host such info to start with (in addition to such good info as what good drugs is Autrijus on anyways?)...
additional helpful info might be recommended tools to properly format the mail being sent to the list... for instance, can outlook express handle this with its Newsgroups features ?
maybe all this exists and i just need another whack with the clue stick...
anyone else want to jump in and help an irc newbie with ident problems ?:)
thanks for your help,
jeff